Java 继承:单继承与多继承
在面试期间,应聘者被问及 Java 是否支持多继承。候选人回答“否”,理由是Java中的每个类都扩展了Object,而扩展另一个类(例如“Class A extends Class B”)意味着A类同时继承自B类和Object,这被认为是多级继承,而不是多重继承.
然而,面试官对这个答案提出了质疑,认为由于B类扩展了Object,因此在A类中扩展B类会导致A类同时继承于B类和Object,本质上构成了多重继承。
澄清
根据面试官的具体示例,候选人的回答基本上是正确的。多重继承是指一个类从两个或多个不相关的基类继承,在继承层次中创建一个“菱形”结构。
Java 的多级单继承
而在Java中,继承是单级的,也有多级的。 A 类扩展了 B 类,而 B 类又扩展了 Object。这创建了一个继承链,但类 A 只能直接从类 B 继承,间接从对象继承。这不是多重继承。
接口和“默认”方法
虽然 Java 不支持传统的多重继承,但它确实有接口和接口上的“默认”方法(在 Java 8 中引入)。此功能允许类实现多个接口并继承各自的默认方法。
但是,这仍然不是真正的多重继承,因为:
结论
Java 的继承模型允许多层次的单继承通过“extends”关键字和带有默认方法的接口提供了一种形式的“多重继承光”。然而,将这些概念与真正的多重继承区分开来很重要,真正的多重继承是一个类可以从多个不相关的基类继承。
以上是Java支持多重继承吗?的详细内容。更多信息请关注PHP中文网其他相关文章!