最近在转JAVA,之前学过C++,学习过程中也算对面向对象进行复习,巩固一些知识点。
重写(Override):
- 定义:重写是指在派生类中重新定义(覆盖)基类的方法,使得派生类可以根据自身的需求提供一个新的实现。
- 特点:重写要求派生类的方法与基类的方法具有相同的方法名、参数列表和返回类型。重写方法必须在派生类中使用
@Override
注解进行标识。 - 运行时绑定:重写是运行时多态性的一种表现形式,即根据对象的实际类型决定调用哪个方法实现。当使用基类引用指向派生类对象并调用被重写的方法时,会根据所指对象的真实类型来动态地选择执行对应的方法。
重载(Overload):
- 定义:重载是指在同一个类中定义多个具有相同名称但参数列表不同的方法,以实现不同的功能或处理不同类型的数据。
- 特点:重载要求方法具有相同的名称,但参数列表必须不同,包括参数类型、参数个数或参数顺序。返回类型可以相同也可以不同。
- 编译时绑定:重载是编译时的多态性,即在编译阶段根据方法名称和参数列表的不同来决定调用哪个方法。
总结:重写是子类对父类的重写,且具有相同的方法名和参数列表。
重载是在同一个类中,相同方法名,但参数列表不同。