java没有多继承的原因

互联网 19-5-21
Java只支持单继承,不允许多重继承,单继承就是一个类只能有一个父类,多继承就是一个类可以有多个父类。

Java可以有多层继承,即一个类可以继承某一个类的子类,如:类B继承了类A,类C又可以继承类B,那么类C也间接继承了类A

子类可以继承父类所有的成员变量和方法,但子类永远无法继承父类的构造方法。在子类的构造方法中可使用语句super(参数列表)调用父类的构造方法。

多继承造成的问题。钻石危机:

  A foo()        / \       /   \   B foo()   C foo()       \   /        \ /       D foo()

假设类A中有一个public方法fun(),然后类B和类C同时继承了类A,类B或类C中各自对fun()进行了覆盖,这时类D通过多继承同时继承了类B和类C,这样便导致钻石危机了,程序在运行的时候对应方法fun()该如何判断?

class A{     public void foo(){     } } class B extends A{     public void foo(){     } } class C extends A{     public void foo(){     } } //Not allowed here. public class D extends B, C{     public void foo(){     } }

(1)如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧义,无法判断应该使用哪个父类的变量。

(2)如果在一个子类继承的多个父类中拥有相同方法,子类中有没有覆盖该方法,那么调用该方法时将产生歧义,无法判断应该调用哪个父类的方法。

以上就是java没有多继承的原因的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 多继承
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java二维数组怎么用

相关资讯