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

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。这是多级继承,而不是多重继承。

但我的回答并不能让他满意。

我的回答是否正确?或者我错在哪里?内部实际发生了什么?


天涯尽头无女友
浏览 587回答 3
3回答

DIEA

你是对的首先,Object类是每个类的超级/基类/父类,包括用户定义的类。因此,即使我们没有明确提及它,用户定义的类默认扩展Object类。就像是class A  class B extends A  but compiler read it as  class A extends Objectclass B extends A证明有关更多详细信息,请查看此java文档以获取继承

侃侃尔雅

你说它是多级继承而不是多重继承是完全正确的。只有层次结构的根Object,所有类都不单独扩展Object。面试官的反击:如果所有类都扩展Object,那么Object将调用构造函数的次数A a = new A();答案只有一次,那将是层次结构的根
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java