本帖最后由 薛飞 于 2013-4-3 20:11 编辑
继承的利弊和使用原则:
* 继承数的层次不可太多
* 继承数的上层为抽象层
(1)定义了下层子类都用友的相同属性和方法,并且尽可能默认实现,从而提高重用性
(2)代表系统的接口,描述系统所能提供的服务
* 继承关系最大的弱点:打破封装
* 精心设计专门用于被继承的类
(1)对这些类必须提供良好的文档说明
(2)尽可能的封装父类的实现细节,把代表时间细节的属性和方法定义为private类型
(3)如果某些实现细节必须被子类访问,定义为protected类型
(4)把不允许子类覆盖的方法定义为final类型
(5)父类的构造方法不允许调用可被子类覆盖的方法 //?????????????此点如何理解,为什么父类的构造函数不允许调用可被子类覆盖的方法?如果调用了,会出现什么结果?编译器会报错吗?有什么弊端?举例说明???????????
(6)如果某些类不是专门为了继承而设计,那么随意继承它是不安全的
|