面向对象
来源:互联网 发布:ubuntu vnc客户端启动 编辑:程序博客网 时间:2024/06/01 15:44
面向对象的三特征和五原则:
- 三个基本特征:封装(与封装相关的关键字:private)、继承(与继承相关的关键字:interface)、多态(与多态相关的关键字:virtual)
- 五种设计原则:单一职责原则、开放封闭原则、Liskov(里氏代换)原则、依赖倒置原则、接口隔离原则、良性依赖原则
封装可以隐藏实现细节,使得代码模块化
继承可以扩展已存在的代码模块
封装和继承的目的都是为了实现代码重用
多态的目的是为了实现接口重用
具体的解释可以参照博客:http://blog.csdn.net/cancan8538/article/details/8057095
博主写的很详细~
MFC类库将CObject的析构函数设为virtual的原因:
- 析构函数调用顺序与构造函数相反
- 但由于多态的存在,如果有如下代码,则指针p撤销时,被调用的是CBase的析构函数,导致CChild占据的内存不会释放,造成内存泄漏
CBase *p;CChild c;p = &c;
- 如果将CObject类的析构函数设为virtual,则其派生类的析构函数均为virtual型,从而解决了在某些情况下出现的内存泄漏问题
重载只是一种语言特性,与多态无关,与面向对象也无关
阅读全文
0 0
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 小解UML中关联、聚合、依赖(简易区分)
- Golang教程:(三)变量
- Oracle开放远程连接
- python对lxml解析html得到的xpath路径去除()、[]得到模式路径
- 自定义控件之放大缩小和移动.进度
- 面向对象
- 在HTML表单中利用JavaScript实现图片上传的前端校验
- LintCode 二叉树中的最大路径和
- Hadoop HA
- log4j配置详解
- hdu 2012 A计划
- css3图片旋转动画
- 计算机网络复习(Ch4运输层)
- 服务器 tensorboard 个人电脑 ip