黑马程序员技术交流社区

标题: 关于继承的两个说法哪个正确呢? [打印本页]

作者: K.L.Zous    时间: 2014-4-9 23:06
标题: 关于继承的两个说法哪个正确呢?
A.子类能继承并拥有父类所有方法和属性,但是不能直接访问父类的私有方法和属性
B.子类不能继承父类的私有方法和属性
作者: tjsyj    时间: 2014-4-9 23:13
继承了,但是没有权限访问
作者: jingdou56    时间: 2014-4-10 00:26
当建立子类对象时,该对象包括父类说有的属性和方法,但是没有权限访问 私有的属性和方法!

毕老师 第7天 的第4个视频中有个讲子类对象在内存中的加载方式,画的有一副图,很容易理解,你可以再温习一下!
作者: syusikoku    时间: 2014-4-10 06:05
子类继承父类后,不能访问父类中私有的成员。但是子类可以通过父类中提供的公有方法来访问父类中的私有的成员。对了,关于是私有的方法,等你学了反射之后可以获取到。这个也是我们以后在安卓里面经常会用到的。我们会经常使用反射调用系统api中隐藏的方法来执行操作。
作者: duanyoujiji    时间: 2014-4-10 08:19
本帖最后由 duanyoujiji 于 2014-4-10 08:22 编辑

A subclass does not inherit the private members of its parent class. However, if the superclass has public or protected methods for accessing its private fields, these can also be used by the subclass.
官方是这么说的,一个子类是不能继承父类的私有成员,然而,如果父类有公开访问和受保护权限修饰符私有字段的方法,那么这些方法会被子类继承。 给你链接  http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
这就是父类私有字段要设置访问方法 public xxx getXxx ();void  setXxx();不要想得那么复杂,访问权限控制修饰符明白就行。

还有一句 A subclass inherits all of the public and protected members of its parent。不是所有,只是public和protect修饰的成员才被继承。

作者: K.L.Zous    时间: 2014-4-10 17:26
哈哈 谢谢各位的解答了
作者: K.L.Zous    时间: 2014-4-10 17:28
茅塞顿开




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