方法重写的概念
方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。
public class Fu{
public void eat(){
System.out.println("我吃牛肉炖土豆...");
}
}
public class Zi extends Fu{
@Override
public void eat(){//方法重写
System.out.println("我吃红烧狮子头...");
}
}
//测试类
public class Demo {
public static void main(String[] args) {
Zi zi = new Zi();
zi.eat();// 我吃红烧狮子头...
}
}
重写的注意事项
-
方法重写是发生在子父类之间的关系。
-
子类方法重写父类方法,返回值类型、方法名和参数列表都要一模一样。
-
子类方法重写父类方法,必须要保证权限大于等于父类权限。
- 访问权限从大到小: public protected (默认) private
-
使用@Override注解,检验是否重写成功,重写注解校验!
- 建议重写方法都加上这个注解,一方面可以提高代码的可读性,一方面可以防止重写出错!
class Fu{
public void method(){
System.out.println("Fu method...");
}
public void sport(){
System.out.println("运动方式是跑步...");
}
public void run(){
System.out.println("第1圈");
System.out.println("第2圈");
System.out.println("第3圈");
}
}
class Zi extends Fu{
@Override
public void method() {
System.out.println("Zi method");
}
//@Override // 编译报错,因为show方法不是一个重写的方法
public void show(){}
@Override
public void sport() {
System.out.println("运动方式为游泳...");
}
@Override
public void run() {
//System.out.println("第1圈");
//System.out.println("第2圈");
//System.out.println("第3圈");
// 让父类run方法执行
super.run();
System.out.println("第4圈");
System.out.println("第5圈");
System.out.println("第6圈");
System.out.println("第7圈");
System.out.println("第8圈");
System.out.println("第9圈");
System.out.println("第10圈");
}
}
public class Test {
public static void main(String[] args) {
/*
- 方法重写的概念
概述:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,
也称为重写或者复写。声明不变,重新实现。
- 重写的注意事项
1.方法重写是发生在子父类之间的关系。
2.子类方法重写父类方法,返回值类型、方法名和参数列表都要一模一样。
3.子类方法重写父类方法,必须要保证权限大于等于父类权限。
访问权限: public > protected > 默认(空) > private
4.使用@Override注解,检验是否重写成功,重写注解校验!
-使用场景:
当父类的某个方法,子类有不同的实现,那么就可以重写该方法
*/
Zi zi = new Zi();
zi.method();
zi.sport();
zi.run();
}
}
小结
- 方法重写:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同)
- 使用场景: 当父类的某个方法,子类有不同的实现,那么就可以重写该方法
- 建议: 校验方法重写或者标识方法重写,可以使用@Override注解