4

我对 OOP 很陌生。我们都知道Java不支持多重继承;但是,所有 Java 类都Object继承自另一个类,也可以继承自另一个类。我们可以将其视为多重继承吗?Java如何处理这样的事情?

4

5 回答 5

6

这不是多重继承,而是多级继承。类可以扩展另一个类,该类可以扩展另一个类,...,最终扩展 Object:

A --> B --> C --> Object

多重继承将是

A ----> B 
  \
   \--> C

这意味着当在 A 中使用方法或字段时,会先在 A 中查找,然后在 B 中查找,然后在 C 中查找,然后在 Object 中查找。

对于多重继承,它必须在 A 中查找,然后在 B 和 C 中查找,并且可能存在冲突,因为两个超类中可能存在相同的方法或字段。

于 2013-07-27T11:32:58.200 回答
4

那不是多重继承……那是java中的多级继承

除了没有超类的 Object 之外,每个类都有一个且只有一个直接超类(单继承)。在没有任何其他显式超类的情况下,每个类都隐含地是 Object 的子类。

在此处输入图像描述

于 2013-07-27T11:35:57.837 回答
2

它仍然是多级继承。如果您要在 java 中使用多重继承 - 出于这些目的使用 intetrace。

因为:

Java support only multiple interface inheritance, and java does not support multiple inheritance
于 2013-07-27T11:39:40.920 回答
2

你解释的是java中允许的多级继承。

在此处输入图像描述

但是java中不允许多重继承。

在此处输入图像描述

于 2014-03-10T09:02:45.263 回答
2

您的类扩展了另一个类,但它也扩展了 Object,因此您仍然处于一行继承中,而不是多重继承。

它调用为多级继承。 不是多重继承。

于 2013-07-27T11:36:39.080 回答