如果一个类派生自另一个派生自Object的类,那就是“多重inheritance”
关于Java的事实是它不支持多重inheritance。
但我有一个问题,即所有java类的基类都是Object。
现在我们有两个类:A类和B类.Binheritance自A然后B的Base类将是Object和A,所以这里发生了多重inheritance。
有人会帮我清除疑虑吗?
Multiple Inheritance
的概念意味着你可以拥有一个A,B和C类,其中A是从B和C派生的,如下所示:
class A extends B, C {}
这在Java中是不可能的。
你所描述的是直接的descendenats线条的直接inheritance。
class A {}; class B extends A {} class C extends B {}
但是,您并不需要多次Inmheritance,因为使用Interfaces
您基本上可以以更清洁的方式实现相同的目标。
B
类inheritance自A
类,而A
类inheritance自Object
。 Object
位于inheritance层次结构的顶部。 这是多级inheritance,而不是多重inheritance。
A和BinheritanceObject,因此A在inheritanceB时inheritanceObject。
一个类总是只扩展一个类。 这是Object类或使用extends关键字定义的类。 该类反过来也可以只扩展一个类,直到最终到达Object类。
你描述的不是多重inheritance; Binheritance自单个超类,A和Ainheritance自单个超类Object。 B获得A和Object的属性和方法,但这是通过单个“链”inheritance。
多重inheritance是一个类直接从多个不相关的类inheritance的地方。 这在Java中是不可能的。
Object类是所有其他类的基类。当您从A类inheritanceB类时,B类不能从Object类inheritance。
public class B extends class A { }
在这里,A类的基类是Object类。
简而言之,如果我们不inheritance任何类,那么它的基类就是对象类。
你也可以参考:
http://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html
将inheritance视为“是一种”关系。
在Java中我们可以拥有
狗是哺乳动物是动物
但不是
狗是母马和四足动物
哺乳动物和四种leggeld动物处于同一水平,但哺乳动物和动物处于不同的水平。
我们可以拥有第一个但不是第二个的原因是,如果我们知道哺乳动物以某种方式说话,动物以某种方式说话,并且四条腿的动物以某种方式说话我们可以按照第一种方式明确说话案件,但不是第二个。