我刚接受了一次采访,我被问到一个问题.
采访者 - Java是否支持多重继承?
我 - 不
Interviewer - Java中的每个类都扩展了类Object(除了Object类),如果我们在外部扩展一个类就像
Class A extends B{
// some code here
}
Run Code Online (Sandbox Code Playgroud)
那么你可以说A类扩展了B类和Object类,这意味着它是多重继承.那你怎么说Java不支持多重继承呢?
我 - 实际上类B扩展了类Object,所以当你在类A中扩展类B时,类A间接地扩展了类Object.这是多级继承,而不是多重继承.
但我的回答并不能让他满意.
我的回答是否正确?或者我错在哪里?内部实际发生了什么?
是否java.lang.Object隐式继承了所有自定义类/对象的超类?我以为java不支持多重继承.我问的原因是我是否已经从我的自定义类中的另一个类继承而且java强制java.lang.Object在它之上强制隐式继承,它不是多重继承吗?
另外,java.lang.class类也是所有自定义类/对象的超类吗?如果没有,在java反射中我们如何获得传递的任何类的类或者在任何对象上调用isInstance?
实际上这个问题是由一位采访者提出的
问:你怎么能说java不支持多重继承?如果Object类是java中所有类的父类.
我对这个问题没有答案.
这意味着没有关于java概念的明确想法:-(
例如:如果A延伸B
这里A已经扩展了Object类.对?现在它是如何工作的?
请分享你的答案..
在本教程(http://www.studytonight.com/java/object-and-classes)中,我读到java类可以选择扩展一个父类.默认情况下,它将扩展java.lang.Object.
注意:我读过的重要声明是 Java枚举隐式扩展了java.lang.Enum类,因此你的枚举类型不能扩展另一个类.
根据注意,我们的普通java类不应该扩展其他类enum(enum类型不能扩展另一个类).但我们可以继承一个类.这是多重继承.?
在java类中可以通过extends关键字派生.像这样
class SomeClass
{ }
class MyClass extends SomeClass{}
Run Code Online (Sandbox Code Playgroud)
默认情况下,所有java类如何extends在java中不使用关键字扩展java.lang.Object类?
当我们的类扩展了一些基类时,它就变成了多重继承.我在stackoverflow中搜索,但我仍然不清楚. 默认情况下,任何类都扩展Object类.这不是说java支持多重继承吗?
任何人都可以用一个简单的例子来澄清这一点.