黑马程序员技术交流社区

标题: 毕老师视频里父类子类同名变量问题,求解答 [打印本页]

作者:  『无』尘    时间: 2013-11-14 04:09
标题: 毕老师视频里父类子类同名变量问题,求解答
class Fu{
        int num=4;
}
class Zi{
        int num=5;
        void show(){
                System.out.println(super.num);
        }
}
class demo{
        public static void main(String[]args){
        Zi z=new Zi();
        z.show();
        }
}

不是说super调用父类的变量么,为什么这段程序编译的时候会报错?


作者: 何丛    时间: 2013-11-14 07:11
class Zi{
        int num=5;
        void show(){
                System.out.println(super.num);
        }
}
子类应该继承父类,才能访问父类的非私有属性,lz应该在class Zi 后面加上extends
作者: kellyzyb    时间: 2013-11-14 10:02
楼主都说是子类和父类关系,代码里面没有体现,按照楼主代码,是三个独立的类。之间没有任何的关系。
  1. class Zi{
  2.         int num=5;
  3.         void show(){
  4.                 System.out.println(super.num);
  5.         }
  6. }
复制代码
这里又调用了super.num 在Object 里面根本没有定义num这个变量,当然会报错。

继承当中,变量不存在覆盖的,子类要访问本类中的变量用this 子类要访问父类中的同名变量,用super
作者: spiderman    时间: 2013-11-14 10:35
你这。。。跟毕老师视频里开的玩笑一样一样的啊。。。。
作者:  『无』尘    时间: 2013-11-14 13:21
忘记加了,谢谢各位
作者: java--周群    时间: 2013-11-16 20:41
你没有在子类中继承父类,




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