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文档以获取继承
侃侃尔雅
TA贡献1801条经验 获得超16个赞
你说它是多级继承而不是多重继承是完全正确的。
只有层次结构的根Object
,所有类都不单独扩展Object。
面试官的反击:
如果所有类都扩展Object
,那么Object
将调用构造函数的次数A a = new A();
答案只有一次,那将是层次结构的根
添加回答
举报
0/150
提交
取消