Java学习笔记-基础day-6-方法重写

1、方法重写的概念

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

class Fu{
    public void method(){
        System.out.println("Fu method");
    }
}

class Zi extends Fu{

    @Override
    public void method() {
        System.out.println("Zi method");
    }

    public void show(){
        System.out.println("Zi show");
    }
}

public class Test {
    public static void main(String[] args) {
        Zi zi = new Zi();
        zi.method();
    }
}
2、重写的注意事项
  • 方法重写是发生在子父类之间的关系。

  • 子类方法重写父类方法,返回值类型方法名参数列表都要一模一样

  • 子类方法重写父类方法,必须要保证子类权限大于等于父类权限

    • 访问权限从大到小: public > protected > (默认) private
  • 使用@Override注解,检验是否重写成功,重写注解校验!

    • 建议重写方法都加上这个注解,一方面可以提高代码的可读性,一方面可以防止重写出错
3、方法重写的使用场景
class Fu{
    public void sport(){
        System.out.println("父类 运动的方式跑步");
    }

    public void run(){
        System.out.println("父类 第1圈");
    }
}

class Zi extends Fu{
    // 子类方法的实现和父类方法的实现完全不同
    @Override
    public void sport() {
        System.out.println("子类 运动的方式游泳");
    }

    // 子类方法的实现要保留父类方法的功能,但要在父类功能的基础之上额外增加功能
    @Override
    public void run() {
    
        // 让父类的方法执行=====复制父类的代码过来
        super.run();// 调用父类的方法

        // 额外增加的代码
        System.out.println("子类 第2圈");
        System.out.println("子类 第3圈");
        System.out.println("子类 第4圈");
    }
}

public class Test {
    public static void main(String[] args) {
        /*
            方法重写的使用场景:
                当父类的方法无法满足子类的需求的时候,子类就会去重写父类的方法
         */
        // 创建子类对象
        Zi zi = new Zi();
        // 调用运动的方法
        zi.sport();
        // 调用跑步的方法
        zi.run();
    }
}

4、小结

  • 方法重写:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同

  • 使用场景: 当父类的某个方法,子类有不同的实现,那么就可以重写该方法

    • 假如是增加父类方法,则使用super.父类方法()
    • 假如是完全重写父类方法,则不用super.父类方法()
  • 建议: 校验方法重写或者标识方法重写,可以使用@Override注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值