继承的设计技巧
将公共操作和域放在超类。
不要使用受保护的域。
protected
机制并不能带来很好的保护,其原因主要有两点。第一,子类集合是无限制的,任何一个人都可以由一个类派生一个子类,并编写代码以直接访问protected
的实例域,从而破坏了封装性。第二,在Java程序设计语言中,在同一个代码包中的所有类都可以访问protected
域, 而不管它是否为这个类的子类。
不过,protected
方法对于指示那些不提供一般用途而应该在子类中重新定义的方法很有用。使用继承实现 “ is-a ” 的关系。
除非所有继承的方法都有意义,否则不要使用继承。
在覆盖方法时,不要改变预期的行为。
使用多态,而非类型信息。
使用多态方法或接口编写的代码比使用对多种类型进行检测的代码更加易于维护和扩展。不要过多地使用反射。
反射对于编写系统程序来说极其实用,但通常不适合于编写应用程序。