立即学习:https://edu.csdn.net/course/play/27126/355506?utm_source=blogtoedu
重载和覆盖
子类方法覆盖(override)父类方法
重载:方法同名,不同参
从面向对象角度,分析覆盖时需要注意的两大准则
- 子类方法不能缩小父类方法的访问权限,如缩小,会造成父类本该可见的方法不可见,违背面向对象思想的“父类定义通用属性和方法”的原则。
- 子类方法不该抛出比父类方法更款发的异常,该限制备用的设计动机是:在父类里定义的方法圆形是外部调用的规范,如子类方法扩大了异常类型,会造成外部调用时,无法处理抛出的异常。
重载背后包含的多态思想
- 通过重载,能分离“业务”和“业务实现细节”。
- 针对同类业务,可以用同名的方法来定义和实现,从而提升代码的可读性
- 方法同名表示“业务相同”,不同参则表示“实现细节不同”
- 两者的解耦合,能提升代码的可扩展性