Java继承三大特点:单继承、多层继承、Object顶级父类,一篇搞懂

张开发
2026/4/9 5:04:38 15 分钟阅读

分享文章

Java继承三大特点:单继承、多层继承、Object顶级父类,一篇搞懂
继承是Java面向对象的三大特性之一但它的语法规则经常被误解。一个子类能继承多个父类吗能继承爷爷类的方法吗为什么我们的类能直接调用equals()和hashCode()今天这篇文章把Java继承的核心特点一次讲清楚。一、Java继承的三大特点Java的继承规则可以总结为一句话只支持单继承不支持多继承但支持多层继承。1. 单继承一个子类只能有一个父类一个儿子只能有一个亲生父亲。同样一个子类只能继承一个父类。// ✅ 正确 public class Zi extends Fu { } // ❌ 错误不能有两个父类 public class Zi extends FuA, FuB { }2. 不支持多继承避免调用歧义为什么Java不允许一个子类继承多个父类因为会出现方法调用歧义。假设有两个父类public class FuA { public void eat() { System.out.println(吃饭); } } public class FuB { public void eat() { System.out.println(吃面条); } }如果允许子类同时继承这两个父类那么调用eat()方法时编译器不知道应该执行哪个——是“吃饭”还是“吃面条”C允许多继承但带来了这个麻烦。Java之父James Gosling在设计Java时直接取消了多继承从根源上避免了歧义问题。3. 支持多层继承可以继承爷爷类虽然不能有多个父类但可以有“爷爷类”。子类继承父类父类再继承祖父类以此类推形成继承链。public class Yeye { } public class Fu extends Yeye { } public class Zi extends Fu { }Zi不仅能访问Fu的内容还能访问Yeye的内容。Java不区分“爷爷”“太爷爷”所有祖先类统称为间接父类直接继承的那个叫直接父类。二、Object所有类的顶级父类Java中有一个特殊的类叫Object。它是所有类的顶级父类。如果一个类没有显式继承任何父类Java会自动让它继承Object如果一个类继承了其他类那它间接继承Object这就是为什么我们写的类可以直接调用equals()、hashCode()、toString()这些方法——它们都是从Object继承来的。public class MyClass { // 没有写extends自动继承Object // 可以直接使用equals()、hashCode()等方法 }三、总结特点说明单继承一个子类只能有一个直接父类不支持多继承避免方法调用歧义支持多层继承可以继承爷爷、太爷爷等祖先类Object顶级父类所有类直接或间接继承Object写在最后Java的继承设计既保证了代码复用又避免了C多继承带来的歧义问题。记住这三条规则只能有一个爸爸单继承不能有两个爸爸禁止多继承可以有爷爷、太爷爷多层继承所有人都有同一个老祖宗Object搞懂了这些你对Java继承的理解就又深了一层。

更多文章