a类的实现常常使用其它类的实例, 名们提供了该类所需要的服务。 a这些实例应当受到保护不被其它对 象存取,包括同一个类的其它实例。 0在四边形的例子中,定义4个 point 类的实例作为 Quadrilateral类的实 例的4个顶点。这些pont对象不能 被其它对象存取
类的实现常常使用其它类的实例, 它们提供了该类所需要的服务。 这些实例应当受到保护不被其它对 象存取,包括同一个类的其它实例。 在四边形的例子中,定义4个point 类的实例作为Quadrilateral类的实 例的4个顶点。这些point对象不能 被其它对象存取
继承( nheritance 继承是使用已存在的定义做为基础 建立新定义的技术。 a新类的定义可以是既存类所声明的 数据和新类所增加的声明的组合。 新类复用既存的定义,而不要求修 改既存类。 既存类可当做基类来引用,则新类 相应地可当做派生类来引用
继承 (Inheritance) 继承是使用已存在的定义做为基础 建立新定义的技术。 新类的定义可以是既存类所声明的 数据和新类所增加的声明的组合。 新类复用既存的定义,而不要求修 改既存类。 既存类可当做基类来引用,则新类 相应地可当做派生类来引用
Polygon Quadrilateral referencePoint reference Point Vertices Vertices draw draw move(△x,△y) move(△x,△y) contains?(apoint) contains(apoint) (a) Polygon类 (b) Polygon类的子类 Quadrilateral
a使用继承设计一个新类,可以视为 描述一个新的对象集,它是既存类 所描述对象集的子集合。 a这个新的子集合可以认为是既存类 的一个特殊化。 Quadrilateral类是 Polygon类的特殊化。 Quadrilateral 是限制为四条边的多边形。我们还 可以进一步地把类 Quadrilateral特 殊化为 Rectangle
使用继承设计一个新类,可以视为 描述一个新的对象集,它是既存类 所描述对象集的子集合。 这个新的子集合可以认为是既存类 的一个特殊化。Quadrilateral类是 Polygon类的特殊化。Quadrilateral 是限制为四条边的多边形。我们还 可以进一步地把类Quadrilateral特 殊化为Rectangle
0类 Quadrilatera的界面可以等同于类 Polygon的界面,而 Rectangle类的界 面又与 Quadrilateral类的界面相同。 a新类的界面还可以被看做是既存类界 面的一个扩充界面。例如,从一个既 存的车辆类派生的四轮驱动车类可能 不仅是车辆类子集合定义的特殊化, 而且还可能在新类的界面中引入新的 能力
类Quadrilateral的界面可以等同于类 Polygon的界面,而Rectangle类的界 面又与Quadrilateral类的界面相同。 新类的界面还可以被看做是既存类界 面的一个扩充界面。例如,从一个既 存的车辆类派生的四轮驱动车类可能 不仅是车辆类子集合定义的特殊化, 而且还可能在新类的界面中引入新的 能力