【Java基础】21.重写(Override)与重载(Overload)


一、重写(Override)

1.方法重写

重写(Override)是指子类定义了一个与其父类中具有相同名称、参数列表和返回类型的方法,并且子类方法的实现覆盖了父类方法的实现。 即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。这样,在使用子类对象调用该方法时,将执行子类中的方法而不是父类中的方法。

重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,抛出 IOException 异常或者 IOException 的子类异常。

在面向对象原则里,重写意味着可以重写任何现有方法。

实例:
父类 Phone:

public class Phone {
   
   
    public void call() {
   
   
        System.out.println("开始打电话~~~~");
    }

    public void sendMessage() {
   
   
        System.out.println("开始发送短信~~~~");
    }
}

子类 NewPhone 继承父类 Phone:

public class NewPhone extends Phone {
   
   
    /**
     * call方法重写
     */
    @Override
    public void call() {
   
   
        super.call(); // super 调用父类方法
        System.out.println("支持语音通话和视频通话~~~~");
    }

    /**
     * sendMessage方法重写
     */
    @Override
    public void sendMessage() {
   
   
        // super.sendMessage(); // 不用 super 调用父类方法
        System.out.println("支持发送图片和视频~~~~");
    }
}

测试类:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值