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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

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

点评

不认可楼主的说法。JDK源码中抽象父类定义了私有变量的例子:Number类、TimeZone类  发表于 2015-3-26 01:26

35 个回复

倒序浏览
赞一个。。。。
回复 使用道具 举报
父类的成员变量私有化之后子类无法继承该属性?
package com.itheima;

public class Test7 {
        private int a = 1;

        public static void main(String[] args) {
                Test7 b = new Test7();
                System.out.println(b.a);
        }

        class B extends Test7 {

        }
}
不是可以吗?
回复 使用道具 举报
真没注意到~!!
回复 使用道具 举报
你是0基础吗?看的哪本书?
回复 使用道具 举报
访问的是成员方法,和成员变量没关系吧
回复 使用道具 举报
zeizeizeiaaa 发表于 2015-3-25 12:05
父类的成员变量私有化之后子类无法继承该属性?
package com.itheima;

私有:权限仅限于本类。
回复 使用道具 举报
四季 发表于 2015-3-25 12:21
你是0基础吗?看的哪本书?

Java与面向对象程序设计教程
这本书比较书面化,作为初学者的参考书,工具书,非常好用。
但是如果不看视频,仅仅想自学这本书,难度是很大的。
毕竟书面的东西,理解起来费劲一点!
回复 使用道具 举报
本帖最后由 itheima_llt 于 2015-3-25 13:03 编辑
朱闹闹 发表于 2015-3-25 12:44
访问的是成员方法,和成员变量没关系吧

是跟权限修饰符有关系!在具体的员工系统中,作为最大的父类Employee,如果它的属性值私有了,子类就无法继承。
子类无法继承,就必须重新定义,那么继承的意义呢??
所以,最大的父类,它的属性必须是可以被子类所继承的。
每一个子类都有属于他自己特有的属性,这时候必须私有化。

点评

私有化成员变量是规范写法。写好get,set方法就行。不能继承私有属性有什么关系?能继承get,set方法还不是一样能操作父类私有成员变量。效果一样的。你写好直接调用子类继承的get就能获取到那些姓名啊之类的信息了。   发表于 2015-3-26 04:02
回复 使用道具 举报
itheima_llt 发表于 2015-3-25 12:56
私有:权限仅限于本类。

大哥,是访问权限好吗?其实是继承了的,只不过在其他类访问不了而已
回复 使用道具 举报
zeizeizeiaaa 发表于 2015-3-25 13:15
大哥,是访问权限好吗?其实是继承了的,只不过在其他类访问不了而已

这个问题有依据,根据官方的定义是这样的:
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)

所以是,根据官方的定义,private 的属性是不被继承的

而如果从内存角度上来看,这些 private 的属性也是存在于内存中的,只是不可见

但是根据 java 官方的定义,不可见就是不被继承
回复 使用道具 举报
其实,毕老师的小小缺点是打错别字,每节课都有,我总是比较纠结
回复 使用道具 举报
jamesli 发表于 2015-3-25 18:11
其实,毕老师的小小缺点是打错别字,每节课都有,我总是比较纠结

{:3_52:}这点我也纠结,只能寄希望于输入法更加智能了,不然大家都容易打错别字。
回复 使用道具 举报
。。。我还真不知道父类的成员变量不能私有化,封装的定义要求标准代码的成员变量必须私有化,对外只提供公共的访问方法。
毕老师这样做没错啊
回复 使用道具 举报
毕姥爷,还是蛮吊的。
回复 使用道具 举报
luoyu1530 发表于 2015-3-25 22:43
。。。我还真不知道父类的成员变量不能私有化,封装的定义要求标准代码的成员变量必须私有化,对外只提供公 ...

子类特有就的私有化,大家都有的,父类就不私有化,仅仅提供给子类继承
回复 使用道具 举报
今天刚看到这一集,看不出来问题,但是想访问name确实是访问不了,,,
回复 使用道具 举报
支持支持支持~
回复 使用道具 举报
觉得基础很重要,要努力学习基础
回复 使用道具 举报
错别字,每次我照抄一遍时老有
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马