请记住一点:
protected 更加 open;仅次于 public
我们一直强调学习时一定要理解,而不是死记硬背。我同意这个,但是,也有很多知识是确实需要死记硬背的。比如你要记住经常用的 API,如果 API 都不记住的话,何谈来编程呢。对于 protected 和 friendly 修饰符,我觉得也是同样的情况
希望这个总结可以让我彻底记清楚 protected 和 friendly 修饰符。
如果图片不可见,请转到:http://hi.baidu.com/arp_tcp/blog/item/d438d218bf734f068618bf14.html 以查看图片
图片尺寸较大,右键单击图片-->在新标签页中打开图片
CSDN上传后的图片,貌似质量大打折扣
对 protected 和 friendly 的总结(共 4 条)
在一个:与Father同包,且继承了 Father的类中:
1、 作为自己的 field,都可以访问
2、 通过某个 同包instance实例 (Father或者Son的实例),直接调用这个instance实例的 field(都可以访问)
3、 通过 异包instance实例(SonOther的实例),只能访问 protected field
在一个:与Father同包,但Stranger中:
1、 通过某个 同包instance实例 (Father或者Son的实例),直接调用这个instance实例的 field(都可以访问)
2、 通过 异包instance实例(SonOther的实例),只能访问 protected field
在一个:与Father异包,且继承了 Father的类中:
1、 作为自己的 field,只能访问 protected
2、 通过某个 同包instance实例 (Father或者Son的实例),都不可以访问
3、 通过 异包instance实例(SonOther的实例),只能访问 protected field
在一个:与Father异包,但Stranger中:
1、 通过某个 同包instance实例 (Father或者Son的实例),都不可以访问
2、 通过 异包instance实例(SonOther的实例),都不可以访问