重写 与 重载
重写(Override)和重载(Overload)是面向对象编程中的两个重要概念,主要区别如下:
定义不同
- 重写:指子类重新定义父类中已有的方法。要求方法名、参数列表、返回值类型完全相同,目的是改变父类方法的实现逻辑。
- 重载:指在同一个类中,存在多个方法名相同但参数列表不同(参数个数、类型或顺序不同)的方法。返回值类型可以不同,目的是让方法根据不同参数完成类似功能。
发生范围不同
- 重写发生在父类与子类之间。
- 重载发生在同一个类内部。
多态性体现不同
- 重写是运行时多态的体现,程序运行时根据对象实际类型调用对应方法。
- 重载是编译时多态的体现,编译时根据参数类型确定调用哪个方法。