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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大笑哈哈 中级黑马   /  2016-5-27 23:43  /  488 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

子类不能继承父类的私有成员为什么还能输出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);
        }
}

3 个回复

倒序浏览
因为能继承,所以就有了setter 和getter方法进行外部交流,这两个方法的权限修饰符是public,外部可以访问的,因此可以通过这个来访问父类的私有属性。这样保证了父类的安全性
回复 使用道具 举报
请问你子类的构造方法里面声明了啥子了?子类自然没有继承父类私有属性,子类构造方法声明了自己的age属性啊,然后继承父类的成员方法啊
回复 使用道具 举报
上面两位说的都不准确,你的子类调用了父类的构造方法,子类使用的是父类的形参,子类没有age属性,只是通过父类的构造方法对父类的私有属性进行了初始化,并不是说子类直接访问了父类的私有属性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马