多重继承和类对象

4

我对面向对象编程(OOP)的了解不多。我们都知道Java不支持多重继承;然而,所有Java类都继承自Object,也可以从另一个类继承。我们能把这看作是多重继承吗?Java是如何处理这样的事情的?


可能是面试谜题 - Java中的多重继承?的重复问题。 - Raedwald
5个回答

6
这不是多继承,而是多级继承。类可以继承一个其他类,该类可以继承另一个类,以此类推,最终扩展 Object:
A --> B --> C --> Object

多继承是指一个类可以从多个父类继承属性和方法。

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

这意味着当一个方法或字段在A中被使用时,它首先在A中查找,然后在B中查找,接着在C中查找,最后在Object中查找。

如果使用多重继承,则必须在A中查找,然后在B和C中查找,但可能存在冲突,因为相同的方法或字段可能存在于两个超类中。


如果我们有一个不继承任何类的类,那么这个类默认继承自class object。但是如果我们有一个继承自类B的类A,那么类A会继承B和object类,因为B继承了它。这就是您的意思吗? - Ibrahim Amer
没有类比Object更高的类,A类继承自B类,而B类又继承自Object类。每个类都只有一个直接超类(除了Object类没有任何超类)。 - JB Nizet

4

这不是多重继承,而是Java中的多级继承

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

enter image description here


2

这仍然是多级继承。如果您想在Java中使用多重继承,请使用接口来实现。

因为:

Java support only multiple interface inheritance, and java does not support multiple inheritance

2
你所解释的是Java中允许的多级继承。但是,Java不允许多重继承。请参考以下图片:

2

您的类继承了另一个类,但它也继承了Object类,因此您仍然处于单一继承层次结构中,而不是多重继承。

这被称为多层继承,而不是多重继承。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接