java中的方法重写

方法重写的概念
方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现

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注解
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值