创建一个子类对象会不会创建父类对象?
不会,只创建了一个子类对象,但是往父类对象的构造方法里传了子类对象的地址;给子类对象初始化的时候,调用了父类的构造方法。
证明:
class A{
public A(){
System.out.println("A=="+this.hashCode());
}
}
class B extends A{
public B(){
System.out.println("B=="+this.hashCode());
}
}
public class test{
public static void main(String[] args){
A test=new B();
}
}
结果:
A366712642
B366712642
如果子类对象创建的同时也创建了一个父类对象,那么父类和子类构造方法中this的hashcode(内存地址)会不一样,但结果相同。