为了账号安全,请及时绑定邮箱和手机立即绑定

Java:如果A扩展B而B扩展了Object,那就是多重继承

Java:如果A扩展B而B扩展了Object,那就是多重继承

天涯尽头无女友 2019-08-13 14:50:17
Java:如果A扩展B而B扩展了Object,那就是多重继承我刚接受了一次采访,我被问到一个问题。采访者 - Java是否支持多重继承?我 - 不Interviewer - Java中的每个类都扩展了类Object(类Object除外),如果我们在外部扩展一个类就像Class A extends B{   // some code here}那么你可以说A类扩展了B类和Object类,这意味着它是多重继承。那你怎么说Java不支持多重继承呢?我 - 实际上类B扩展了类Object,所以当你在类A中扩展类B时,类A间接地扩展了类Object。这是多级继承,而不是多重继承。但我的回答并不能让他满意。我的回答是否正确?或者我错在哪里?内部实际发生了什么?
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

你是对的

首先,Object类是每个类的超级/基类/父类,包括用户定义的类。

因此,即使我们没有明确提及它,用户定义的类默认扩展Object类。

就像是

class A 
class B extends A

 but compiler read it as 
class A extends Objectclass B extends A

证明

有关更多详细信息,请查看此java文档以获取继承


查看完整回答
反对 回复 2019-08-13
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

你说它是多级继承而不是多重继承是完全正确的

只有层次结构的Object,所有类都不单独扩展Object。

面试官的反击:

如果所有类都扩展Object,那么Object将调用构造函数的次数A a = new A();

答案只有一次,那将是层次结构的根


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 576 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信