面向对象的三大基本原则之一:多态

  • 方法的覆盖与动态分派
  • 成员与static方法
  • 多态是面向对象的灵魂

什么是多态

  • 实例方法默认是多态的
    • 在运行时根据this来决定调用哪个方法
    • 静态方法没有多态
    • 参数静态绑定,接收者(实例)动态绑定

多态的实战:策略模式

1. 经典例子:折扣策略

  • 涉及金额的表示:浮点数是不精确的,处理方法:
    • 用最小单位:分为单位,用int
    • Java的BigDecimal类,是十进制的精确的
  • 将策略和业务分离开,抽象出策略
    • 每种策略有不同discount实现
    • 想要修改某种策略直接去对应的策略类修改就可以了,易于维护

2. JDK线程池中的策略ThreadPoolExecutor