Java 据说,当我们自动创建一个子类的对象时,它的超类的对象就会被创建。这是真的吗?

Java 据说,当我们自动创建一个子类的对象时,它的超类的对象就会被创建。这是真的吗?,java,abstract-class,subclass,superclass,Java,Abstract Class,Subclass,Superclass,据说,当我们创建子类的对象时,会自动创建其超类的对象。这是真的吗?如果是,那么如果超类是一个抽象类呢。子类是超类的一个实例,因此它不会创建不同的对象,您的子类实例就是超类实例。不,这不是真的。对象只有一种类型:实例化的类。该对象还将包含超类的所有字段,并且可以调用该对象上的所有超类方法(未被重写),但它仍然只是一个对象 例如,假设您有: class A { int i; } class B extends A { int j; } 如果实例化new B(),则会得到一个对象,

据说,当我们创建
子类的
对象
时,会自动创建其
超类的
对象。这是真的吗?如果是,那么如果超类是一个抽象类呢。

子类是超类的一个实例,因此它不会创建不同的对象,您的子类实例就是超类实例。

不,这不是真的。对象只有一种类型:实例化的类。该对象还将包含超类的所有字段,并且可以调用该对象上的所有超类方法(未被重写),但它仍然只是一个对象

例如,假设您有:

class A {
    int i;
}

class B extends A {
    int j;
}

如果实例化
new B()
,则会得到一个对象,该对象具有两个字段的存储空间,
i
j

这种情况取决于您所说的创建其超类的对象的意思。当创建抽象类的子类的对象时,内部会发生什么?您所说的“其超类的对象”是什么意思???请澄清问题。无法判断您是否在谈论(可能)在超类中声明的字段或其他内容。@RayToal:超类的对象意味着父类的对象有子类。+1即使超类是抽象的(这只是意味着超类不能自己构造),这种情况仍然会发生。