黑马程序员技术交流社区
标题:
求问继承里的双飞现象怎么解释
[打印本页]
作者:
绯影
时间:
2016-11-5 10:52
标题:
求问继承里的双飞现象怎么解释
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
作者:
潘老板
时间:
2016-11-5 21:45
这个不错,挺有意思
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2