黑马程序员技术交流社区

标题: 求解答 [打印本页]

作者: helloxiaoyu    时间: 2015-8-6 23:44
标题: 求解答
super 和 this 的区别,完整一些


作者: 真实姓名被注册    时间: 2015-8-7 00:33
super和this只能在类内部使用,super代表父类,this代表本类
作者: muffin    时间: 2015-8-7 09:18
class Person
{
        String name;
        Person(String n)
        {
                this.name=n;
        }
}
class Student extends Person
{
        //String name;//注意,如果打上这句话,那么运行结果是null;
        //因为下面那句super(b);其实就是this.name=b。而这个name是父类的name。
        //只不过是子类拿来用了。所以“zhangsan”实际上是赋给了super的那个
        //name了。你再打印this.name,当然会显示为空。
        //测试如下。当下面改成super.name时。会打印zhangsan。
        Student(String b)
        {
                super(b);
        }
        public void speak()
        {
                System.out.println(this.name);//这个name,其实是父类的name,你
                //如果自己再定义一个name,那么就变成本类自己的name了。
                //而super(b)这句话已经把zhangsan赋值给了super的name,所以打印
                //结果为null。
        }
}
作者: helloxiaoyu    时间: 2015-8-7 21:44
谢谢各位的解答




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2