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

本帖最后由 itheima_llt 于 2015-3-26 11:47 编辑

之前一直是只看视频,根本看不出任何问题。
现在我一边看书,一边看视频,一边敲代码,一边测试,发现毕老师写的代码有些地方也是有瑕疵的。
例如在day07AbstractTest中在定义父类的时候,他把父类的成员变量私有化了,这个是不可以的,私有之后子类无法继承该属性,如果在和数据可以连接的时候,将会产生严重的问题。
除此之外,还有一些小错误,我没有总结。
总的来说,毕老师的小错误是瑕不掩瑜的,还是超赞毕老师!{:3_67:}
所以,手上备一本java基础书看能取得更好的效果,把基础打得更扎实哦!

更正:“把父类的成员变量私有化了,这个是不可以的”具体指的是:“把在父类中属于所有子类都公有的属性私有化了,这个是不可以的”。

35 个回复

正序浏览
大神还看基础视频?
回复 使用道具 举报
至今没发现~!
回复 使用道具 举报

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

那么,请问是否所有的成员变量都给他私有化呢??
回复 使用道具 举报
:handshake:handshake
回复 使用道具 举报
赞一个。。。。
回复 使用道具 举报
fantacyleo 发表于 2015-3-26 12:01
感谢回复。
对你的更正还是不认同。父类把各子类共有的属性私有化也具有现实意义:父类设计者或许不希望 ...

让我琢磨琢磨!
回复 使用道具 举报
itheima_llt 发表于 2015-3-26 11:46
谢谢你这么认真的回帖!
首先,语法上确实是允许的。这点是毫无疑问的,但是定义的类应该符合现实生活的 ...

感谢回复。
对你的更正还是不认同。父类把各子类共有的属性私有化也具有现实意义:父类设计者或许不希望子类自定义某些共有属性(比如:身份证号码)的访问方式。而是通过非私有final方法为子类提供访问接口。
回复 使用道具 举报
fantacyleo 发表于 2015-3-26 01:23
不认可楼主”把父类的成员变量私有化了,这个是不可以的“的说法。首先,语法上是允许的。其次,虽然不能继 ...

谢谢你这么认真的回帖!
首先,语法上确实是允许的。这点是毫无疑问的,但是定义的类应该符合现实生活的实际情况,就和“不能为了继承而继承”一样,也不能为了保护类的成员变量而全部私有,属于全体子类都有的不应当私有化。
其次,父类的私有成员变量确实是可以通过父类公有的方法而被子类所访问,这点也是毫无疑问的。
此外,你举的JDK源码那个例子,我还不了解。
最后,我把“父类的成员变量私有化了,这个是不可以的”说法更正为“把在父类中属于所有子类都公有的属性私有化了,这个是不可以的”。
谢谢!
回复 使用道具 举报
不认可楼主”把父类的成员变量私有化了,这个是不可以的“的说法。首先,语法上是允许的。其次,虽然不能继承私有变量,但不意味着子类无法访问该变量。因为抽象类也可以定义非抽象方法。最后,我可以举出JDK源码中抽象父类定义了私有变量的例子:Number类、TimeZone类
回复 使用道具 举报
错别字,每次我照抄一遍时老有
回复 使用道具 举报
觉得基础很重要,要努力学习基础
回复 使用道具 举报
支持支持支持~
回复 使用道具 举报
今天刚看到这一集,看不出来问题,但是想访问name确实是访问不了,,,
回复 使用道具 举报
luoyu1530 发表于 2015-3-25 22:43
。。。我还真不知道父类的成员变量不能私有化,封装的定义要求标准代码的成员变量必须私有化,对外只提供公 ...

子类特有就的私有化,大家都有的,父类就不私有化,仅仅提供给子类继承
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马