您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

java没有多继承的原因

2025/10/18 6:00:00发布32次查看
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没有多继承的原因的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product