JVM中的对象创建

时间:2012-12-01 15:38:38

标签: java

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中创建多少个对象。

3 个答案:

答案 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