01_方法的重写

一、方法的应用体现

方法的应用体现有2种

  • 重载
    1. 在同一个类中
    2. 方法名相同
    3. 参数列表不相同
    4. 和方法返回值无关
  • 重写
    1. 在父子类中
    2. 方法名相同
    3. 参数列表相同
    4. 方法返回值相同

二、概述

方法的重写就是子类对父类的方法逻辑进行重新编写,当然,这个方法得是子类可访问的实例方法

三、什么时候需要方法重写

当子类需要父类的功能,但父类的该功能不能完全满足自己的需求时,子类可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的功能

四、如何快速重写一个方法

声明不变,重新实现,重写时可以定义一个声明一样的方法,对方法体进行重新定义,如下,我有一个手机类,该类定义了一个方法就是打电话

public class Phone{
    public void call(){
        System.out.pringln("通话中");
    }
}

一段时间过后,该方法已经不能完全满足我的需求了,比如,我希望增加视频通话功能,此时,就可以新建一个类(NewPhone),继承自Phone类,对打电话功能(call)进行重写,如下

// NewPhone.java
public class NewPhone extends Phone{
    public void call(){
        System.out.pringln("打开摄像头...");
        // 考虑到代码的复用性,可以使用super调用父类中的方法
        super.call();
    }
}

// Test.java
public class Test{
    public static void main(String[] args){
        newPhone.call();
        // 打开摄像头...
        // 通话中...
    }
}

五、@Override注解

@Override注解是放在重写后的方法上,作为重写是否正确的校验注解,加上该注解后如果重写错误,编译阶段会出现错误提示,建议重写方法都加上@Override注解,代码安全,优雅,使用方式如下

// NewPhone.java
public class NewPhone extends Phone{
    @Override
    public void call(){
        System.out.pringln("打开摄像头...");
        // 考虑到代码的复用性,可以使用super调用父类中的方法
        super.call();
    }
}

六、注意事项

  1. 重写方法的名称和形参列表必须与被重写方法名称和参数列表一致
  2. 私有方法不能被重写
  3. 子类重写父类方法时,子类方法访问权限必须大于或者等于父类方法权限(缺省<protected<public
posted @ 2023-07-15 12:47  徐林俊  阅读(17)  评论(0编辑  收藏  举报