在Java中,假设我们有两个类A
和B
,其中B
继承了A
,而A
具有三个私有字段和一个带有三个参数的构造函数:
public class A {
private int a ;
private int b ;
private int c ;
public A(int a, int b, int c) {
this.a = a;
this.b = b;
this.c = c;
}
}
这里是类B
。
public class B extends A {
public B() {
super(1,2,3);
}
}
我们考虑以下测试类。
public class TestA {
public static void main(String[] args) {
A a = new A(1,2,3);
B b = new B();
}
}
问题是,当创建带有私有字段的类A并将其继承到类B时,堆中发生的有序过程是什么?当创建这两个类的实例时,堆中会发生什么?内存分配如何发生,类在计算机内存中如何交互?
我们也知道子类无法继承其超类的私有字段,那么当调用构造函数B()时会发生什么?