重载和重写的不同可以先用一张表来大致区分:
区别点 | 重载 | 重写 |
发生范围 | 同一个类 | 子类 |
参数列表 | 必须不同 | 必须相同 |
返回值类型 | 可以不同 | 小于等于父类的返回类型 |
异常类型 | 可以不同 | 小于等于父类的返回类型 |
访问修饰符 | 可以不同 | 大于等于父类的访问修饰符 |
发生阶段 | 编译时 | 运行时 |
具体解释:
发生范围:重载发生在同一个类中,而重写发生在子类继承父类时,需要对父类的同名方法根据需要进行改进。
参数列表:重载的参数列表必须不同,表现在参数类型、个数或顺序至少有一个不同,而重写的参数列表必须相同。