对象创建时的字段继承和内存分配

时间:2019-05-23 12:59:40

标签: java inheritance field

关于字段继承,我有一个问题。 让我们假设以下类:

class SuperClass {
   public String field = "SuperClass";
}
class SubClass extends SuperClass {
   public String field = "SubClass";
}

现在,在main方法中,我运行以下代码:

SubClass instance = new SubClass();
System.out.println(instance.field); // SubClass

SuperClass referenceToInstance = instance;
System.out.println(referenceToInstance.field); // Superclass

由于两个引用都指向同一个对象,这使我产生了疑问:如何存储对象变量?

假设我定义了100个子类的迭代,每个子类中都声明了一个称为“ field”的字段。当我创建最深子类的实例时,这是否在创建对象时就已经为100个版本的“字段”分配了内存,还是仅在我用相应的特定引用引用对象之后才创建“字段”的特定版本?

0 个答案:

没有答案