其实这两个概念是两种发生在完全不一样场景的东西,不应该放在一起进行区分的。

重写

重写——子类对父类方法逻辑进行重新定义。让子类能够定义自己的行为

1,返回值、形参都不能改变——只改内部,不改外部。(如果返回类型是父类的派生类,那么可以改变返回类型)

2,不能抛出比父类更大的异常。

3,子类重写方法的权限不能比父类更小

4,final方法不能重写

5,static方法不能被重写,只能重新声明

6,子父类都在同一个包时,可以重写非private和非final的所有方法

7,子父类不在同一个包,只能重写public和protected的非final方法。

8,不能重写构造方法

在编译时,检验的是父类有无此方法。运行时使用的是子类的方法。
因为连父类都没有这个方法的时候,运行就会报错。

重载

重载是一个类中的多个重名方法。

1,被重载的方法必须改变改变参数列表(个数或者类型不同,或者次序不同)

2,可以改变返回值类型

3,可以改变访问符

4,可以声明新异常

5,能够被重载

6,单看返回值类型无法区分是否为重载函数。

说点什么
暂时没有人评论
Loading...