Java override 和 overload 的区别和联系

方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载.

overload(重载):
是在同一个类中,方法名相同,参数的个数、顺序、类型不同的方法(注意跟返回值没有关系)

覆盖是父与子的关系,是子的把父的给隐藏了,重载是在一个类中,方法名相同,但参数的个数和类型至少有一项不同,调用的时候会根据参数找到对应的方法

如:

public void getA(){
}
public void getA(int a){
}

 


override(覆盖):
这个覆盖只出现在父类与子类之间,也称作 重写,
也就是说一个A类继承B类,B类中有一个方法
如:
B类中:

 public void getC(){
}

 


而A类继承B类,
同样有一个getC方法,并且有override关键字修饰
即:

@Override
public void getC(){
}

 


这样就称作方法的 覆盖 或 重写

posted @   aspirant  阅读(556)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示