Java—重写与重载的区别

本文深入解析了面向对象编程中的两个核心概念:重写(Override)与重载(Overload)。重写是在子类中对继承自父类的方法进行修改,确保方法名、参数列表和返回类型一致,而重载则是在同一类中使用相同方法名但参数列表不同的多个方法。文章详细阐述了两者的定义、区别及其实现多态的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、重写(Override)


 在子类中把父类本身有的方法重新写一遍。
子类继承了父类原有的方法,在方法名,参数列表,返回类型都相同的情况下, 
对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。

注:返回类型 ,子类中方法的返回类型可是是父类中方法返回类型的子类。

2、重载(Overload)

在一个类中,方法名相同,有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则为重载。

注:

1、重载对返回类型没有要求,可以相同也可以不同,但是不能通过返回类型是否相同来判断重载。 

2、别以形参的名称的不同,视为参数不同。

3、总结

 相同:方法重载或重写都是实现多态的方式
 多态方式不同:重载是编译时的多态;重写为运行时的多态;

不同:重载发生在一个类中,同名方法,如果有不同的参数类型,或不同的参数个数,或二者兼有,则为重载。

重写发生在子类中,子类重写的方法与父类保持相同的方法名、返回值及参数,同时方法的访问修饰权限不能低于父类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值