面向对象程序设计(OOP)的基本特点
抽象,封装,继承,多态
1. 抽象
定义: 面向对象方法中的抽象是指对具体问题进行概括,抽出一类对象的公共性质并加以描述的过程
一个问题的抽象分为两个方面:数据抽象和行为抽象(或功能抽象,代码抽象)
前者描述某类对象的属性或状态,也就是此类对象区别于彼类对象的特征
后者描述某类对象的共同行为或功能特征
2. 封装
定义: 封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的函数代码进行有机的结合,形成"类",其中的数据和函数都是类的成员
3. 继承
继承可以在一般概念的基础上派生出特殊概念,使得一般概念中的属性和行为可以被特殊概念共享,摆脱重复分析,重复开发的困境
4. 多态
定义: 多态性是指一段程序能够处理多种类型对象的能力
c++中通过强制多态,重载多态,类型参数化多态,包含多态 来实现
c++使用virtual关键字来实现动态绑定
Java中动态绑定是默认行为,不需要添加额外关键字
动态绑定: 当向对象发送消息时被调用的代码直到运行时才能确定,编译器确保被调用的方法存在,并对调用参数和返回值执行类型检查