一.两者的概念:
1.重载(Overload):在同一个类中,同名的方法具有不同的参数列表(参数列表中的参数个数不同、参数类型不同、参数顺序不同都可视为不同的参数列表),可以构成重载;
2.重写(Override):子类对父类原有的方法进行重新的逻辑编写,构成重写;
二.两者的区别:
\ | 重载 | 重写 |
英文名 | Overload | Override |
位置 | 同一个类中 | 子类和父类之间 |
方法名 | 必须相同 | 必须相同 |
参数列表 | 必须不同 | 必须相同 |
权限修饰符 | 无关 | 重写方法的权限修饰符范围大于或者等于父类方法的 |
返回值类型 | 无关 | 重写方法的返回值类型小于或者等于父类方法的 |
抛出异常范围 | 无关 | 重写方法的抛出异常类型范围小于或者等于父类方法的 |
作用 | 减少具有相同的方法名的方法的重复编写,可根据不同参数类型自动匹配方法 | 子类可以根据需要,定义特定于自己的行为 |