创建子类对象的同时到底有没有创建父类对象啊?
class Parent {
int i = 1;
}
class Child extends Parent {
int j = 2;
Child() {
//为什么这行报错,而下面紧接着的一行不报错呢,
System.out.println(super);
System.out.println(super.i);
System.out.println(this);
System.out.println(this.i);
System.out.println(this.j);
}
}
class Test {
public static void main(String[] args) {
//请问new 子类Child对象的同时在堆中会产生父类Parent对象吗?
Child child = new Child();
}
}
this存的就是child引用的对象的地址(虽然不是真正的地址,暂且理解为地址)
创建子类对象的同时到底有没有创建父类对象啊?。“new+构造方法”是创建一个对象,在Child(){}里面隐藏了super(),但这仅仅是调用了父类构造,并没有new+父类构造,所以按理不会产生父类对象, 那为什么System.out.println(super.i);这行不报错????