基础班入学两个星期了,刚学完面向对象,考试成绩差强人意,马马虎虎,回顾一下发现自己对面向对象这一阶段的知识理解的其实还是不够深入,认识也并不够全面,这里举个自己有些纠结的概念问题——为什么说只是概念问题呢,因为自己对于这其中的使用规则区别都是明白的,只是对于大家针对同一个现象所持的不同表述方式感到迷惑:
关于Java中父类的私有成员能否被子类继承的说法:
1:视频上老师讲的是因为父类的私有成员归父类私有,私有成员不能被子类直接访问或者重写,所以不能被继承
2:自己则表示不解,更倾向于另一种说法,那就是父类的私有成员是被子类一并继承了的,只是不能被直接访问或者重写,特别的提一下关于私有方法不能被重写的问题,个人认为重写的一个重要意义就是要看重写后的子类方法能否将父类的相应方法覆盖,对于公有方法,这种覆盖关系是存在的,而私有方法,这种覆盖关系并不成立,即使在子类中定义一个和父类私有方法同名的一个方法,两个方法其实是不相关的,不存在所谓覆盖不覆盖的关系,所以也不存在重写一说,而且翻阅国外书籍,并没有私有方法不能被继承一说,只是说私有方法不能重写
以下附上几个相关的讨论帖子供大家参考:
http://bbs.csdn.net/topics/380090973
http://bbs.bccn.net/thread-311524-1-1.html
http://guoying252166655.iteye.com/blog/2101759 |
|