1.抽象:是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。分为数据抽象和行为抽象。
2.封装:就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的函数代码进行有机的结合,形成“类”。其中数据和函数都是类的成员;
例如:在C++中,时钟类定义如下:
class Clock //class 关键字 类名
{//边界
public://外部接口,外界只能通过这个接口与Clock类发生联系;
void setTime(int newH, int newm, int newS);//行为
void showTime();//行为
private://特定访问成员,本类的私有数据,外部无法访问;
int hour,minute,second;
}
3.继承:允许程序员在保持原有类特性的基础上,进行更具体、更详细的说明;
例如人都有姓名和性别以及年龄。人又分为学生和老师等,学生和老师又有各自的属性,比如学生有学号成绩班级等,使得特殊与一般的概念间的关系描述清楚。
4.多态:是指一段程序能够处理多种类型对象的能力。在C++语言中,这种多态性可以通过(1)强制多态;(2)重载多态;(3)类型参数化多态;(4)包含多态;这4种形式来实现;
比如:“打”在生活中可以是打羽毛球、打乒乓球、打篮球等等,实际都使用“打”来表示参与某种球类运动,但规则和实际动作却相差甚远。实际上就是对多种运动行为的抽象;
强制多态:通过将一种类型的数据转换成另一种类型的数据来实现的。(数据类型转换隐式和显式)
重载多态:是指给同一个名字赋予不同的含义;
强制多态和重载多态属于特殊多态性,也是表面多态性;
包含多态和类型参数化多态属于一般多态性,是真正的多态性;C++中采用虚函数实现包含多态。