重写(override)规则:
- 参数列表必须完全与被重写方法相同
- 返回类型必须完全与被重写的返回类型相同
- 访问权限不能比父类中被重写的访问权限更低。例如:如果父类的一个方法被声明为public,name子类中重写该方法就不能声明为protected
- 父类的成员方法只能被他的子类重写
- 声明为static和private的方法不能被重写,但是能够被再次声明
```java
public class Demo1{
public stsic void main(String[] args){
} }Student s = new Student();s.say();
class Person{ public void say(){ System.out println(“锄禾日当午,汗滴禾下土”) } }
class Student extends Person{ public void say(){ System.out.println(“床前明月光”); } } ```
注意:面试题:Java中重写(override)和重载(overland)的区别
- 重写是发生在子父类中的操作
- 重载是一个类里面参数列表的长度、参数类型和参数类型顺序不同(分为构造方法重载和方法重载)
a. 发生的位置
重载:一个类中
重写:子父类中
b. 参数列表限制
重载:必须不同
重写:必须相同
c. 返回值类型:
重载:与返回值类型无关
重写:返回值类型必须一致
d. 访问权限:
重载:与访问权限无关
重写: 子的方法权限 必须不能小于 父的方法权限
e.异常(bug)处理:
重载:与异常无关
重写:可以减少或删除(异常范围可以更小更精准,但是不能抛出新的异常)
