A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

绯影

初级黑马

  • 黑马币:68

  • 帖子:20

  • 精华:0

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

1 个回复

倒序浏览
这个不错,挺有意思
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马