java中重写和重载是两个完全不同的概念 只不过他俩的名字相似 所以可能会分不清楚
重写 | 重载 | |
定义 | 子类重新写父类的方法,实现不同功能 方法名、参数相同,功能不同 | 同一个方法重复多次以实现不同类型传参 方法名、功能相同,参数类型、个数不同 |
场景 | 子类修改父类行为 但final不能被重写 | 同一个方法需要接受或返回不同参数 |
继承 | 需要继承父类 | 不需要继承 |
作用 | 实现编译时多态性 使代码更加灵活 | 解决同一个类中多个相似任务的需求 |
重载的访问修饰符和异常声明可以不同
重写的访问修饰符不能低于父类的级别(例如,如果父类方法是protected
,子类方法至少也应该是protected
)子类的异常声明必须与父类的异常声明相同或是其子类