软件构造学习笔记2 重写Override和重载Overload

本文详细介绍了Java中的方法重写(Override)和重载(Overload)的概念及区别。重写关注参数列表不变,主要发生在子类对父类方法的继承中,规则包括异常不能增加,规约不能减弱。而重载则强调参数列表必须改变,可以在同一类或子类中实现,编译时决定调用哪个方法。通过具体的示例,展示了如何在代码中实现这两种机制。
摘要由CSDN通过智能技术生成

表格比较重写和重载

重写

重载

参数列表

必须不变

必须改变(个数/类型)

异常

可以减少抛出的异常/不抛出异常,不能抛出原本不抛出的异常

可以改变

规约

可以更强,不能更弱

可以改变

调用

运行时决定,根据运行时实际的对象类型(定义式右端)决定调用哪个方法

编译时决定,根据声明的类型(引用类型、定义式左端)和参数列表匹配决定调用哪个方法

有继承关系时

子类重写父类方法后,相当于覆盖,如果想调用父类方法,需要用super关键字

子类重载父类方法后,子类实际上继承了父类被重载的方法,调用时可以直接按照参数列表匹配的原则调用继承的被重载方法

重载示例:

class Animal { 
public void eat() {}
}
class Horse extends Animal {
public void eat(String food) {}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值