Java 继承期间的对象创建

Java 继承期间的对象创建,java,Java,如果运行此代码,将创建多少个对象? 如果构造函数内部的new SubTask()和new Task()创建了新实例,如何从main引用它们 如果运行此代码,将创建多少个对象 二, 通过主任务中的new SubTask()和构造函数中的new Task() 如果new SubTask()一个new Task()insie构造函数创建了新实例,那么如何从main引用它们 您正在创建匿名对象,因此在创建匿名对象的行之外无法访问这些对象。不会创建任何对象,因为您的代码不会编译。 SimbleTask!=

如果运行此代码,将创建多少个对象? 如果构造函数内部的
new SubTask()
new Task()
创建了新实例,如何从main引用它们

如果运行此代码,将创建多少个对象

二, 通过主任务中的
new SubTask()
和构造函数中的
new Task()

如果new SubTask()一个new Task()insie构造函数创建了新实例,那么如何从main引用它们


您正在创建匿名对象,因此在创建匿名对象的行之外无法访问这些对象。

不会创建任何对象,因为您的代码不会编译。
SimbleTask!=SimpleTask

2:一个
子任务
,一个
任务
。如前所述,
SimpleTask
没有被引用。了解创建的子任务将不可访问,并最终对继承结构进行垃圾回收可能会很有用。我认为这段代码不会达到您期望的效果。
public class Task {
}

class SubTask extends Task {
    public SubTask() {
        new Task();
    }
}

class SimpleTask extends SubTask {
    public SimpleTask() {
        new SubTask();
    }

    public static void main(String[] args) {
        SimpleTask s = new SimpleTask();
    }
}