Think in Java - Chatpter 7 polymorphism 多态性
多态性:
是什么怎么做优点:
代码组织以及可读性均能获得改善创建“易于扩展”的程序Polymorphism - 动态绑定、推迟绑定或者运行期绑定
?
能够不顾衍生类,只让自己的代码与基础类打交道,那么省下的工作量将是难以估计的。
?
可在运行期间判断对象的类型,并分别调用适当的方法;
也就是说,编译器此时已然不知道对象的类型,但方法调用机制能自己去调查,找到正确的方法主体。
Java中绑定的所有方法都采用后期绑定技术,除非一个方法已被声明成final
final的使用:
防止其他人覆盖这个方法有效“关闭”动态绑定,或者告诉编译器不需要进行动态绑定 - 编译器就可为final方法调用生成效率更高的代码
在一个设计良好的OOP程序中,而且只与基础类接口通信。
我们说这样的程序具有“扩展性”,因为可以从通用的基础类继承新的数据类型,从而新添一些功能。如果是为了适应新类的要求,那么对基础类接口进行操纵的方法根本不需要改变。
将发生改变的东西同没有发生改变的东西区分开
?
?// Using interfaces to create groups of constants public interface Months { int JANUARY = 1, FEBRUARY = 2, MARCH = 3, APRIL = 4, MAY = 5, JUNE = 6, JULY = 7, AUGUST = 8, SEPTEMBER = 9, OCTOBER = 10, NOVEMBER = 11, DECEMBER = 12; }?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?