首先看Parent p = new Child();建立了一个新的Child对象,先访问其构造方法
public Child(){
super();//调用父类构造方法
System.out.println(">>>>>>"+x);
}
父类构造方法add(2),需要指出调用add方法的是p对象,也就是p.add(2).而子父类同时存在add方法。根据多态,常量看左面,方法看右面。所以会调用子类的add方法。
而这时,x并没有初始化,在调用完super后内存中才会存在x变量。System.out.println("==+++=="+x) x是this.x所以输出为0,下面的为2. super()语句执行完毕。子类内存中
产生变量int x =9.输出 System.out.println(">>>>>>"+x);
p.x不多说 多态时常量看左面。 |