黑马程序员技术交流社区

标题: 继承问题 [打印本页]

作者: 大笑哈哈    时间: 2016-5-27 23:43
标题: 继承问题
子类不能继承父类的私有成员为什么还能输出Age?  个人觉得子类没有继承父类的age属性就没有age属性。
class ExtendsTest2{
        public static void main(String[] args){
                Zi z = new Zi(6);
               
                System.out.println(z.getAge());
        }
}
class Fu{
        private int age;

        void setAge(int age){
                this.age = age;
        }
        int getAge(){
                return age;
        }
        Fu(int age){
                this.age = age;
        }
}
class Zi extends Fu{
        Zi(int age){
                super(age);
        }
}


作者: yourlike    时间: 2016-5-28 00:05
因为能继承,所以就有了setter 和getter方法进行外部交流,这两个方法的权限修饰符是public,外部可以访问的,因此可以通过这个来访问父类的私有属性。这样保证了父类的安全性
作者: 我love    时间: 2016-5-28 01:33
请问你子类的构造方法里面声明了啥子了?子类自然没有继承父类私有属性,子类构造方法声明了自己的age属性啊,然后继承父类的成员方法啊
作者: android_vae    时间: 2016-5-28 10:04
上面两位说的都不准确,你的子类调用了父类的构造方法,子类使用的是父类的形参,子类没有age属性,只是通过父类的构造方法对父类的私有属性进行了初始化,并不是说子类直接访问了父类的私有属性




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