美文网首页Java基础
Java为什么只能单继承

Java为什么只能单继承

作者: 爱学习的江小石 | 来源:发表于2019-04-06 23:24 被阅读0次

这是我在去哪儿网面试的时候被问到的问题,因为之前在学习Java的时候一直在强调Java是不能多继承的,但并没有去了解为什么。

先屡清楚继承和实现的区别:

  1 类继承类,实现接口。接口继承接口。

   2 类只能单继承类(抽象类和非抽象类), 可以多实现接口。而接口可以多继承接口。

分析原因:

       Java中类不能多继承类是为了安全。因为无论是抽象类还是非抽象类都包含非抽象的方法(非抽象类也可能没有),当类可以多继承类时,被继承的不同的父类可能会有同名同参的方法,如果子类也没有重写这个同名同参的方法,则在子类的实例调用这个方法的时候就会出现冲突。

举个例子:

   class A继承了class B 和class C, 但是 class B和class C中有同名同参的方法method,且在A中并没有重写方法method,那在A的实例中调用method方法就会出现冲突,jvm就会不知道到底该调用哪一个方法。

class B { method(){}};

class C {method() {}};

class A extends B, C{};

 A a = new A(); 

a.method();

此时在执行a.method()时冲突就会出现。

所以Java只能单继承。

引申学习:

如果想进一步了解更深层次的原因,可以学习Java多态和Java 类的加载机制,加载过程中的类信息,方法表等知识。

参考:从JVM角度看Java多态

相关文章

  • Java为什么只能单继承

    这是我在去哪儿网面试的时候被问到的问题,因为之前在学习Java的时候一直在强调Java是不能多继承的,但并没有去了...

  • 为什么Java类只能单继承

    首先我们要明确一个事实,在Java语言中类只能单继承与某个类,却可以多集成接口。同时接口与接口之间可以多继承。 为...

  • Java学习之继承、final/static、多态、类的加载

    继承 Java所有类都继承跟类Object Java只能进行单继承,一个类只能继承一个类(一个儿子只能有一个父亲)...

  • Java继承

    一、Java继承详解 Java继承目录:1.为什么要”继承“?2.继承的类型2.1 单继承2.2 多重继承2.3 ...

  • JAVA 核心笔记 || [7] 继承

    继承 被继承的类为 基类 或者 父类 类 只能单继承 不可同时继承多类 Animal.java Dog.java ...

  • Python多重继承(拓扑排序)(9)

    Python跟Java不同,Java只能单继承(不过有多实现),而Python能够多重继承。其多重继承遵循拓扑排序...

  • pom-parent-dependencyManagement

    :和Java继承一样,只能单继承,具有局限性

  • NO.18 继承(extends)

    Java中类的继承特点 Java只支持单继承,不支持多继承。(一个儿子只能有一个爹) 有些语...

  • 面向对象三大特性

    三大特性:继承 封装 多态 继承 Java中的继承只能单继承,但是可以通过内部类继承其他类来实现多继承。 封装 封...

  • 继承,方法的重写,super关键字

    (1)继承是发生在多个类之间(2)继承使用关键字extends(3) JAVA只能单继承,允许多层继承(4)被继承...

网友评论

    本文标题:Java为什么只能单继承

    本文链接:https://www.haomeiwen.com/subject/jdadiqtx.html