旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

java没有多继续的缘由【JAVA教程】,Java,多继承

作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:71评论:0


导读:Java只支撑单继续,不允许多重继续,单继续就是一个类只能有一个父类,多继续就是一个类能够有多个父类。Java能够有多层继续,即一个类能够继续某一个类的子类,如:类B继...
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没有多继续的缘由的细致内容,更多请关注ki4网别的相干文章!

标签:Java多继承


欢迎 发表评论: