面向对象的三大基本原则之一:多态
- 方法的覆盖与动态分派
- 成员与static方法
- 多态是面向对象的灵魂
什么是多态
- 实例方法默认是多态的
- 在运行时根据this来决定调用哪个方法
- 静态方法没有多态
- 参数静态绑定,接收者(实例)动态绑定
多态的实战:策略模式
1. 经典例子:折扣策略
- 涉及金额的表示:浮点数是不精确的,处理方法:
- 用最小单位:分为单位,用int
- Java的BigDecimal类,是十进制的精确的
- 将策略和业务分离开,抽象出策略
- 每种策略有不同discount实现
- 想要修改某种策略直接去对应的策略类修改就可以了,易于维护