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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

不认可楼主”把父类的成员变量私有化了,这个是不可以的“的说法。首先,语法上是允许的。其次,虽然不能继承私有变量,但不意味着子类无法访问该变量。因为抽象类也可以定义非抽象方法。最后,我可以举出JDK源码中抽象父类定义了私有变量的例子:Number类、TimeZone类
回复 使用道具 举报
fantacyleo 发表于 2015-3-26 01:23
不认可楼主”把父类的成员变量私有化了,这个是不可以的“的说法。首先,语法上是允许的。其次,虽然不能继 ...

谢谢你这么认真的回帖!
首先,语法上确实是允许的。这点是毫无疑问的,但是定义的类应该符合现实生活的实际情况,就和“不能为了继承而继承”一样,也不能为了保护类的成员变量而全部私有,属于全体子类都有的不应当私有化。
其次,父类的私有成员变量确实是可以通过父类公有的方法而被子类所访问,这点也是毫无疑问的。
此外,你举的JDK源码那个例子,我还不了解。
最后,我把“父类的成员变量私有化了,这个是不可以的”说法更正为“把在父类中属于所有子类都公有的属性私有化了,这个是不可以的”。
谢谢!
回复 使用道具 举报
itheima_llt 发表于 2015-3-26 11:46
谢谢你这么认真的回帖!
首先,语法上确实是允许的。这点是毫无疑问的,但是定义的类应该符合现实生活的 ...

感谢回复。
对你的更正还是不认同。父类把各子类共有的属性私有化也具有现实意义:父类设计者或许不希望子类自定义某些共有属性(比如:身份证号码)的访问方式。而是通过非私有final方法为子类提供访问接口。
回复 使用道具 举报
fantacyleo 发表于 2015-3-26 12:01
感谢回复。
对你的更正还是不认同。父类把各子类共有的属性私有化也具有现实意义:父类设计者或许不希望 ...

让我琢磨琢磨!
回复 使用道具 举报
赞一个。。。。
回复 使用道具 举报
:handshake:handshake
回复 使用道具 举报

那么,请问是否所有的成员变量都给他私有化呢??
回复 使用道具 举报
对楼主的刻苦学习精神赞一个
回复 使用道具 举报
毕老师的视频中,经常是为了让可读性更强牺牲了一部分正确度,比如后面经常不处理异常。。。哈哈
回复 使用道具 举报
我也在书上看到说:父类私有的(private)成员变量和成员方法不能被继承
回复 使用道具 举报
:handshake:handshake:handshake
回复 使用道具 举报

赞一个。。。。
回复 使用道具 举报
至今没发现~!
回复 使用道具 举报
大神还看基础视频?
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马