封装:把数据和方法包装进类中,并对具体实现进行隐藏。

(1)类是基本的封装单元,一个类的所有对象实例具有相同的封装特性;
 (2)“具体实现”包括:对象的数据域、方法实现以及非接口方法的定义等;
 (3)现实中使用public、protected、private关键字实现4种隐藏能力。

封装的意义:

(1)模块化: 不同对象间仅通过必要的消息进行交互;
 (2)保证数据对象的一致性: 通过隐藏对象变量和方法实现, 防止绕过接口更改变量;
 (3)易于维护: 对私有变量和私有方法的更改, 不会影响到调用对象接口的其他程序, 提高了程序的可移植性。

继承:描述子类与父类之间的关系,子类是父类的特例,描述一种由抽象到具体的过程。
继承的原则:

(1)子类继承父类的变量和方法;
 (2)子类可以增加新的变量和方法;
 (3)子类可以重写继承来的方法;
 (4)继承关系可以有多层,子类要继承它所有父类的方法与状态。

继承的意义:

(1)定义对象之间的层次关系, 下层对象继承了上层对象的特性,实现对父类中代码的重用;
 (2)将一般行为与特殊行为分离,一般行为包含在父类中,从父类继承得到的特定子类,实现特殊行为的具体细节(新变量、新方法、重写父类方法)。

多态:泛指能够通过同一名称或接口表示多种形式的方法和多种类型的对象的能力
多态的形式包括:

(1)编译时多态:一个类中定义多个名称相同但参数不同的方法,编译时多态通过方法重载实现(overloading)。
 (2)运行时多态:运行时多态是指通过相同的接口访问不同类型的对象的能力

关于运行时多态:

(1)这些对象所对应的每一种类型都提供了对该接口的独特实现;
 (2)通过方法重写、向上转型和动态绑定, 达到“对外一个接口,内部多种实现”

以继承为基础
改变从父类继承的行为(方法重写,overriding)
将子类对象当作父类对象看待(向上转型,upcasting)
在运行时确定接收消息的对象的类型及其行为(动态绑定,dynamicbinding)
多态的意义:
使得在程序运行时, 对象的一种接口可以提供多种不同的操作,提高程序的灵活性。