有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JVM中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) 个答案

  1. # 1 楼答案

    答案是1。 调用new C()创建一个确实扩展了B的对象,该对象扩展了A本身,因此可以使用从B和A继承的功能

  2. # 2 楼答案

    将直接创建一个对象。我之所以说“直接”,是因为初始化表达式或构造函数代码可以使用“new”创建其他对象

    创建一个C对象将导致四个构造函数调用。在C的构造函数体之前,有一个对B构造函数的显式或隐式调用。类似地,B的构造函数调用A构造函数,A构造函数调用对象构造函数

    对象是C,是B,是a,是一个对象,在进程结束时,它们都将被初始化为它们中的每一个

    有关这个过程的详细信息,请参见the JLS

  3. # 3 楼答案

    一种是C型。在这里添加一些东西,使答案超过30个符号长