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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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调用父类的变量么,为什么这段程序编译的时候会报错?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 同学,下次要再仔细一点看代码哦~.

查看全部评分

5 个回复

倒序浏览
class Zi{
        int num=5;
        void show(){
                System.out.println(super.num);
        }
}
子类应该继承父类,才能访问父类的非私有属性,lz应该在class Zi 后面加上extends

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 问题太简单,以金币鼓励!

查看全部评分

回复 使用道具 举报
楼主都说是子类和父类关系,代码里面没有体现,按照楼主代码,是三个独立的类。之间没有任何的关系。
  1. class Zi{
  2.         int num=5;
  3.         void show(){
  4.                 System.out.println(super.num);
  5.         }
  6. }
复制代码
这里又调用了super.num 在Object 里面根本没有定义num这个变量,当然会报错。

继承当中,变量不存在覆盖的,子类要访问本类中的变量用this 子类要访问父类中的同名变量,用super
回复 使用道具 举报
你这。。。跟毕老师视频里开的玩笑一样一样的啊。。。。
回复 使用道具 举报
忘记加了,谢谢各位
回复 使用道具 举报
你没有在子类中继承父类,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马