【大话设计模式】附录A 笔记
来源:互联网 发布:建设银行mac版网银盾 编辑:程序博客网 时间:2024/05/02 05:07
***********************************************
继承
关于继承的三句话:
1. 子类拥有父类非 private 的属性和功能;简单说,公用的东西能继承,老爸自己的东西你不能继承,你爸的老婆一定不是继承成你老婆。
2. 子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;你自己可以添家当。
3. 子类还可以以自己的方式实现父类的功能(方法重写)。就是多态啦。
继承的缺点:
1. 父类变,则子类不得不变。
2. 继承会破坏包装,父类实现细节暴露给子类,这样就增大了两个类之间的耦合性。(继承显然是一种类与类之间强耦合的关系)
以上两点就是说,要是你爸是个淘气的老少年,一天一个花样,你天天跟着变也是闹腾。
用继承的条件:
当两个类之间具备‘is-a’ 的关系时,就可以考虑用继承了。而当两个类之间是 ‘has-a’ 的关系时,不适合用继承。比如:人有两只手,手不能继承人;飞机场有飞机,飞机不能继承飞机场。
***********************************************
多态
多态表示不同的对象可以执行相同的动作,但要通过他们自己的实现代码来执行。
几点说明:
1. 子类以父类的身份出现,就是说这个函数算是父类的,实在父类里面声明的。可以想成,这个菜在祖传菜单里。
2. 子类在工作时以自己的方式来实现。就是说,这个函数是父亲提出来的,但是具体活怎么干是儿子自己琢磨着干的,这个菜的名字在菜单里,但是菜怎么烧看儿子的。
3. 子类以父类的身份出现时,子类特有的属性和方法不可以使用。烧菜的材料是老爸厨房里的,老爸厨房里只有花生油,儿子厨房里有橄榄油,那儿子烧这个菜就不能用自己的橄榄油,只能用老爸的花生油,不然穿帮了。
怎么认出来
怎么知道哪个函数是可以多态的呢,老爸列菜单的时候前面写了个‘virtual’. 只有这样的菜,儿子才能自己 override。
多态的原理
当方法被调用时,无论对象是否被转换为其父类,都只有位于对象继承链最末端的方法实现会被调用。也就是说,虚方法是按照其运行时类型而非编译时类型进行动态绑定调用的。
***********************************************
重构
- 【大话设计模式】附录A 笔记
- 大话设计模式 附录A 面向对象基础 C++实现
- 《大话设计模式》 之 附录摘记 ~..
- 大话设计模式 笔记
- 《大话设计模式》笔记
- 大话设计模式笔记
- 大话设计模式笔记
- 大话设计模式--笔记
- 大话设计模式-笔记
- <大话设计模式>笔记
- 大话设计模式笔记
- 大话设计模式(1) 附录 OOP编程基础
- 《大话设计模式》阅读笔记
- 大话设计模式学习笔记
- 大话设计模式学习笔记
- 大话PHP设计模式笔记
- 简单设计模式-《大话设计模式》笔记
- 《大话设计模式》--笔记(单例模式)
- 1022. Digital Library
- 插入排序和将一个数插入有序数组
- UML9种视图
- 1021. Deepest Root
- 历届试题 剪格子
- 【大话设计模式】附录A 笔记
- HDU5040 Instrusive,bfs+优先队列
- uc/os的中断
- 小飞鱼通达商务平台课程 OA开发程序基础课 2月18日 第二课 HTML基础作业
- JAVA中的变量及类型
- (十补)自定义布局管理器
- SpringMVC入门实例(解析工作原理)
- easyUi更变分页时事件的获取
- 北漂的程序猿何去何从