11.1 面向对象概念和基本特征
面向对象(OOP)是现代流行的程序设计方法,是一种主流的程序设计规范。其基本思想是使用对象、类、继承、封装、属性、方法等基本概念来进行程序设计。从现实世界中客观存在的事物出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。
例如,在现实世界的学生管理系统中,张三同学和李四同学是现实世界中客观存在的实体,他们有学号、姓名、班级等属性,他们有学习、问问题以及吃饭走路等动作(或操作)。如果我们要开发一个学生管理软件系统,那么张三同学和李四同学是对象,将他们共同的属性和方法(操作)归纳和总结后,得出一个抽象的描述就是类(class),即学生类。
OOP的基本特征包括:封装性、继承性和多态性。
封装性 封装性就是尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。
继承性 一些特殊类能够具有一般类的全部属性和方法,这称做特殊类对一般类的继承。例如客轮与轮船,客轮是特殊类,轮船是一般类。通常我们称一般类为父类(或基类),特殊类为子类(或派生类)。
多态性 对象的多态性是指在父类中定义的属性或方法被子类继承之后,可以使同一个属性或方法在父类及其各个子类中具有不同的含义,这称为多态性。例如动物都有吃饭的方法,但是老鼠的吃饭方法和猫的吃饭方法是截然不同的。