如果父类由多个子类扩展,并且所有子类并行运行,那么在运行时是否会为每个子类创建多个父类实例?只是好奇。
为了清楚理解,让我们考虑下面的代码。
家长班:
public class Parent {
public String a = "Parent";
}
儿童等级1:
import org.testng.annotations.Test;
public class Child1 extends Parent {
@Test
public void child1() {
a = "Child1";
}
}
儿童班2:
import org.testng.annotations.Test;
public class Child2 extends Parent {
@Test
public void child1() {
a = "Child2";
}
}
这里我想了解如果类Child1和Child2并行运行,是否会为Child1和Child2分别创建两个单独的实例(内存空间),或者两者都将共享Parent类的公共实例(内存空间)?
答案 0 :(得分:1)
是否会为其创建多个父类实例 每个孩子班在运行时间?
简短的回答是否定的。
问题是Java在这种情况下只会创建两个实例 - 两个子类。无论何时使用extends
关键字,都要告诉Java 扩展对象的蓝图,而不是对象本身,这意味着如果要谈论内存分配,实例完全是彼此独立的。