方法的重写
概念:子类继承父类之后,就拥有了符合权限的父类的属性和方法,但是当父类的方法不符合子类的要求的时候,子类也可以重新的书写自己想要的方法。所以,方法的重写,即子类继承父类的方法后,由于父类的方法不满足子类的需求,子类重新书写该方法。
方法重写的条件
- 在子类中重写父类的方法。
- 返回值类型、方法名、参数列表必须和父类重写的方法一模一样。
- 访问修饰符不能被父类重写的方法更严格。
- 抛出的异常必须比父类的要小。
代码实现:
java
//创建父类Person
class Person {
public void eat(){
System.out.println("吃食物");
}
public void sleep(){
System.out.println("睡觉");
}
}
//创建子类Student
class Student extends Person {
public void study(){
System.out.println("学习");
}
@override
public void eat(){
System.out.println("我喜欢吃螺蛳粉。");
}
}
public class Test {
//这是一个main方法,是程序的入口:
public static void main(String[] args) {
//创建一个Student类的对象:
Student student = new Student();
student.eat();
}
}
运行结果:
方法重写VS方法重载
名称 | 发生范围 | 方法名 | 形参列表 | 返回类型 | 修饰符 |
---|---|---|---|---|---|
重载(Overload) | 本类 | 必须一样 | 类型,个数或者顺序至少有一个不同 | 无需求 | 无需求 |
重写(Override) | 父子类 | 必须一样 | 相同 | 子类重写的方法,返回的类型和父类返回的类型一致,或者是其子类 | 子类方法不能缩小父类方法的访问范围 |