private,public,protected
来源:互联网 发布:python正则表达式大全 编辑:程序博客网 时间:2024/06/06 03:19
成员在哪里定义 与 成员在哪里访问 来决定 类内,类外还是继承链上类内。
必须明确:private
, public
和protected
这几个关键字,和继承一毛钱的关系都没有。人家叫做“可见性(Visibility)”。基类不能控制自己的所有成员都被子类继承走,但可以约束某些被继承的的成员,对子类新增补的成员不可见。
从“拥有”这个角度来说,子类是基类的套壳,基类的一切当然都在子类中“存在”——只是从子类的角度能不能“看得到”而已。
如下图(蓝色箭头部分),private member肯定存在在子类的存储空间中,也就是说肯定被子类继承到了。但子类新增的方法就是访问不到。
这个事情从架构设计这个意义上,其实是很容易说清楚的。一个子类必须遵守基类的所有特征,然后在其上做出增补和扩充。而如果基类的所有成员都开放给子类随便看、随便改,基类的本来特征可以随便拆掉,那么还要继承做什么呢?
在实际工程中,基类的私有成员,要么是基类自己内部使用,要么是像上图(红色箭头部分)一样,通过protected
方法做一个访问器,保证既把访问权间接开放给子类,又能在子类访问时执行一些必要的控制逻辑。
如
var_dump()打印一个子类的时候是可以看到父类的私有属性, 但是不能访问
0 0
- private public protected
- public, protected, private,
- public,private protected
- 关于public,protected,private
- public protected private区别
- public / protected / private / virtual
- private、protected、public........
- public private protected 区别
- public,private,protected 区别
- C++ public protected private
- public,private,protected
- private public protected 范围
- public protected private
- public,protected,private
- private,protected,public,internal
- private,protected,public,internal
- public private protected
- public,protected,private,static
- EventBus3.0的基础使用。
- springboot加载jsp的问题
- linux中Apache 2.4.7打开cgi功能模块与测试
- 调用手机震动
- JAVA语言之归并排序
- private,public,protected
- bnu 51644 Whalyzh's Problem(网络流,最大密度图) (北师16校赛)
- 利用Python下的draw_net.py画网络结构图
- RecyclerView可以在xml文件中配置的特别属性
- log4net记录日志,在IIS发布后不记录日志问题解决方案
- Dynamic clock
- dwr多人聊天室实用技术详解(保证成功)
- poj 1066 Treasure Hunt (线段交)
- android 控件 下拉刷新 JellyRefreshLayout