释放双眼,带上耳机,听听看~!
序
其实这两个概念是两种发生在完全不一样场景的东西,不应该放在一起进行区分的。
重写
重写——子类对父类方法逻辑进行重新定义。让子类能够定义自己的行为
1,返回值、形参都不能改变——只改内部,不改外部。(如果返回类型是父类的派生类,那么可以改变返回类型)
2,不能抛出比父类更大的异常。
3,子类重写方法的权限不能比父类更小
4,final方法不能重写
5,static方法不能被重写,只能重新声明
6,子父类都在同一个包时,可以重写非private和非final的所有方法
7,子父类不在同一个包,只能重写public和protected的非final方法。
8,不能重写构造方法
在编译时,检验的是父类有无此方法。运行时使用的是子类的方法。
因为连父类都没有这个方法的时候,运行就会报错。
重载
重载是一个类中的多个重名方法。
1,被重载的方法必须改变改变参数列表(个数或者类型不同,或者次序不同)
2,可以改变返回值类型
3,可以改变访问符
4,可以声明新异常
5,能够被重载
6,单看返回值类型无法区分是否为重载函数。