【发布时间】:2017-11-05 20:44:33
【问题描述】:
如果一个父类由多个子类扩展,并且所有子类都并行运行,是否会在运行时为每个子类创建多个父类实例?只是好奇。
为了清楚地理解,让我们考虑下面的代码。
父类:
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 为父类创建两个单独的实例(内存空间),或者两者将共享父类的公共实例(内存空间)?
【问题讨论】:
-
“将为父类创建两个单独的实例(内存空间)”是什么意思?如果您创建
new Child1()实例,则它是 Child1 类的一个实例(它可以被视为 Parent 类型的 表示,但它仍然是 Child1 而不是 Parent 的实例)。 “Child1 和 Child2 并行运行”是什么意思?
标签: java inheritance parent-child extends