public class B extends A{
// code goes here
}
public class C extends B{
public void method1(){
C c = new C();
}
}
由于C正在扩展B,而B又扩展了A,当我创建C的对象时,将在JVM中创建多少个对象。
答案 0 :(得分:2)
一个C
类型。要在这里添加一些东西,回答超过30个符号...
答案 1 :(得分:1)
答案是1。
调用new C()
创建一个确实扩展B
的对象,它扩展了A
本身,因此您可以使用从B和A继承的功能。
答案 2 :(得分:1)
将直接创建一个对象。我说“直接”,因为初始化表达式或构造函数代码可以使用“new”创建其他对象。
创建一个C对象将导致四个构造函数调用。紧接在C的构造函数体之前,有一个对B构造函数的显式或隐式调用。类似地,B的构造函数调用一个构造函数,它调用Object构造函数。
对象是C,是一个B,是A,是一个对象,在进程结束时,它们将被初始化为每个对象。
有关此过程的详细信息,请参阅the JLS。