public class Test3 {
public static void main(String[] args) {
Son s = new Son();
s.setName("张三"); //子
System.out.println(s.getName()); //张三
System.out.println(s.name); //null
}
}
class Father {
private String name;
public void setName(String name) {
this.name = name; //this==父
this.play(); //this==子
}
public String getName() {
return this.name;
}
public void play(){
System.out.println("父");
}
}
class Son extends Father {
String name;
public void play(){
System.out.println("子");
}
}
1.创建对象时是Son s = new Son();自己创建自己的对象,并没有父类引用子类对象
2.当s.setName("张三");赋值时,this.name走的是父类,this.paly()走的是子类,同一个this走的是不同类,即双飞
3.因此当System.out.println(s.getName());打印的是张三,而System.out.println(s.name);打印的却还是null |
|