|
|
@ -23,7 +23,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
例如要在平面上描述两个类,圆和矩形,那么这两个类好像有一些基本的特性是一致的。例如,填充颜色color,是否填充 filled,对象创建时间 dateCreated等。另外,需要对上述属性设置或者读取的方法:getColor(),setColor(),isFilled(),setFilled()等。
|
|
|
|
例如要在平面上描述两个类,圆和矩形,那么这两个类好像有一些基本的特性是一致的。例如,填充颜色color,是否填充 filled,对象创建时间 dateCreated等。另外,需要对上述属性设置或者读取的方法:getColor(),setColor(),isFilled(),setFilled()等。
|
|
|
|
|
|
|
|
|
|
|
|
如果每个类都需要描述所有的这些特性好像有点浪费,如何做到降低代码冗余?我们使用到继承,如下图表述,GeometrocObject是父类,保护所有子类共有的特性(数据和方法);Circle和Rectangle继承于GeometrocObject。这样在编写Circle和Rectangle的时候就只需要对其特性进行描述就可以了;这两个类的共性在其父类中以及体现出来了,子类完全继承父类的所有特性(数据和方法)。
|
|
|
|
如果每个类都需要描述所有的这些特性好像有点浪费,如何做到降低代码冗余?我们使用到继承,如下图表述,GeometrocObject是父类,包括所有子类共有的特性(数据和方法);Circle和Rectangle继承于GeometrocObject。这样在编写Circle和Rectangle的时候就只需要对其特性进行描述就可以了;这两个类的共性在其父类中以及体现出来了,子类完全继承父类的所有特性(数据和方法)。
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
@ -90,7 +90,7 @@ public class SimpleGeometricObject {
|
|
|
|
|
|
|
|
|
|
|
|
可以看到父类对共有的变量和方法进行了定义,虽然父类可以实例化,但是好像实例化父类并没有什么实际的意义。
|
|
|
|
可以看到父类对共有的变量和方法进行了定义,虽然父类可以实例化,但是好像实例化父类并没有什么实际的意义。
|
|
|
|
|
|
|
|
|
|
|
|
**注意:这个类最好不能被实例化,因为没有意义。下一章将借用这个离职,并使其不能被实例化。**
|
|
|
|
**注意:这个类最好不能被实例化,因为没有意义。下一章将借用这个例子,并使其不能被实例化。**
|
|
|
|
|
|
|
|
|
|
|
|
#### 1.2.2. 子类Circle
|
|
|
|
#### 1.2.2. 子类Circle
|
|
|
|
|
|
|
|
|
|
|
|