本文是读《Thinking in Java》第七章复用类的总结,代码的复用是提高开发效率的有效方法之一。对于代码的复用一般分为组合和继承两种方式,应当正确的使用组合和继承,那样能规范代码的含义,使得代码结构设计的更好。
组合与继承
组合:是指将现有对象引用置于新类。
继承:是指声明新类与现有类之间的相似关系,使用extends关键字。
组合与继承该如何选择:使用继承更多是表示子类与父类的关系是“is-a”(是一个)的关系,而组合是表示“has-a”(有一个)的关系。具体如何选择,就看新类与旧类之间的关系即可,这样组合和继承的含义也能正确的表示。
对于继承关系更多的东西在之后多态的部分再总结。
final关键字
final可修饰:数据,方法和类。都是表示这是不可变的。
final数据
final的数据就是代表这个数据是不变的,例如:一个永远不变的编译时变量,即被赋值之后不再改变;或者在运行时被赋值之后不再改变。
对于final的数据类型是基本类型,那么这个数据就不会再改变,但是对于final的数据类型是对象或数组,那么这个对象的引用是不会再改变,但是对象里边的数据如果没有final就是可变的,这一点需要注意。
final的数据,可以在推迟到构造函数的时候再被初始化。
final的数据是方法的参数也是如同上边一样,这个数据便不能修改。
final方法
final方法一般是为了不让方法被继承修改,在jdk1.5以前还能提高一定的效率,因为final的方法便不会被继承就不会去寻找是否有可能是子类去实现。
所有的private方法都隐式的指定为final的,private和final一起使用是没有任何额外意义的。
final类
final类是指该类不会再被继承,它的字段和方法也就默认被指定为final的。
总结
对于类的设计优先选择组合,在确实必要时才使用继承,对于这些类包含的功能不要包含太多,可能会导致难以复用,也不要太少,以至于不能直接使用。