Java中的多重继承所有类都是从Object类扩展的?

时间:2013-12-16 16:10:13

标签: java inheritance multiple-inheritance

我有一个简单的问题:

如果我声明一个类A - 意味着该类隐式继承自Object Class。

现在如果B类继承自A类

这个B类也不是从Object类继承吗?

如果是,这是否意味着编写关键字'extends'一些如何覆盖隐式继承(来自Object类)?

2 个答案:

答案 0 :(得分:12)

所有类都直接或间接地从Object隐式或显式扩展,Java中的整个类层次结构最终指向Object,它位于根。例如,当你写这个:

public class MyClass extends Object {

与此完全相同:

public class MyClass {

如果我们有这个:

public class MySubClass extends MyClass {

然后MySubClassMyClass延伸而来自Object。它是一个传递性继承关系,它只发生在一个方向:在层次结构中没有任何一点,单个类可能从多个类扩展 - 这就是为什么我们说在Java中我们有单继承(相反) to:多重继承。)

答案 1 :(得分:1)

当你'扩展'时,你的类从基类中获取所有内容并添加额外的东西。所以,如果A扩展了Object,你就得到了A中的所有Object。如果B扩展了A,它将获得所有的A,它也包含所有的Object。所以,B现在有了对象,A和B本身的任何东西。

多重继承是指一次从多个事物中扩展一个类:

public class M extends SomeBase, AndAnotherBase {

Java中不允许这样做。它在允许它的语言中增加了复杂性,因为你最终可以使用由SomeBase,AndAnotherBase组成的类M ......并且如果它们都已经从Object派生...... M中将包含2个对象。这开始变得棘手,因为你必须知道你正在处理的M中的哪个对象。