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

© yxpzzl 中级黑马   /  2016-4-22 00:22  /  643 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码如下:
class Extends_Person {
        public static void main(String[] args) {
                Student x = new Student("张三",23);
                x.eat();
                x.study();
                System.out.println(x.getName() + x.getAge());
               
                final int X = 10000;
                Teacher y = new Teacher();
                y.setName("涂老师");
                y.setAge(X);
                System.out.println(y.getName() + "可以活到" + y.getAge());
                y.eat();
                y.teach();
        }
}

class Person {
        private String name;
        private int age;

        public Person() {}

        public Person(String name,int age) {
                this.name = name;
                this.age = age;
        }

        public void setName(String name) {
                this.name = name;
        }

        public String getName() {
                return name;
        }

        public void setAge(int age) {
                this.age = age;
        }

        public int getAge() {
                return age;
        }

        public void eat() {
                System.out.println(name + "吃饭");
        }
}

class Student extends Person {
        public Student() {}

        public Student(String name,int age) {
                super(name,age);
        }

        public void study() {                                //学习
                System.out.println(super.name + "喜欢学习");
        }
}

class Teacher extends Person {
        public Teacher() {}

        public Teacher(String name,int age) {
                super(name,age);
        }

        public void teach() {
                System.out.println(super.age + "老师is a very good teacher");       
        }
}

编译器报错 : Extends_Person.java:58: 错误: name可以在Person中访问private
子类不能继承父类的私有属性,这我知道了
我记得上课说可以用super访问父类的成员,为什么一直不可以?求大神解释

2 个回复

倒序浏览
倒数第三行是super.name 传错了
回复 使用道具 举报
父类中的name和age是私有的,不过父类有set和get方法,当你拿到了父类中name和age中的时,你可以在子类中定义两个变量来存储你从父类中获取的name和age中的值.把name和age重新赋值给子类自定义的变量就可以了啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马