重写
重写,是子类有父类的情况下,用于子类对父类的方法进行重写
重写是子类对父类的非私有方法重新编写方法内容,方法的返回值和形参都与父类的方法相同
如果在重写过程中,还需要引用父类中的方法功能,可以使用 super 引用父类方法
重写规则
@override,重写,也就是覆盖
- 重写方法的方法名和方法参数列表必须与被重写的方法完全相同
- 访问修饰符的访问权限必须大于被重写方法的访问修饰符权限,但是不能是 private
- 重写方法的返回值必须与被重写方法返回值相同
- 重写方法若是抛出异常,那么异常必须是与被重写方法抛出的异常一致或是异常的子类
- 声明为final的方法不能被重写;声明为static的方法不能被重写,但是能够被再次声明
重载
重载是指同一个类或子类对父类的都可以
重载,指两个方法的方法名称相同,但是方法参数列表不同
重载规则
overload,一般是用于同一个类中
- 重载的方法的方法名称必须相同,而参数列表不能相同
- 不同的参数列表,可以是参数的个数不同,参数的类型不同,或参数的顺序不同
- 方法的返回值没有要求,可以相同,也可以不同
- 方法的访问修饰符可以不同,也可以相同
- 方法抛出的异常也可以不同
重写和重载的区别
区别 | 重载 | 重写 |
---|---|---|
参数列表 | 必须不同 | 都可以 |
返回值 | 都可以 | 必须相同 |
异常 | 都可以 | 必须相同或是子类 |
访问修饰符 | 都可以 | 必须相同或是权限更大 |