Java重载和重写

本文深入探讨了重载和重写在编程中的概念及应用,解析了它们之间的相同点和不同点,包括如何在类中实现多态性,以及在子类中重写父类方法的具体规则。

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

重载和重写是什么

重载(overload):
重载是让类以统一的方式处理不同类型的手段。 体现为多个具有不同类型的参数或者参数个数的同名函数(返回值可以随意,不可以以返回值作为重载标准),同时存在与同一个类中,是一个类多态性的表现。调用方法时通过判断不同的参数个数和参数类型来决定调用那个函数。
重写(override)
父类与子类的多态的体现,是对父类函数的重新定义。如果在子类中定义方法有何父类相同的****返回值类型名称参数列表。则父类方法被子类重写(覆盖)。如果需要调用父类的原有方法,则用super关键字。

总结重载和重写的相同与不同

相同:
1):方法名相同
2):表现了多态
不同:
1):重载在在一个类多态性的体现,而重写是子类和父类多态性的体现
2):重载参数类型必须不同,重写必须有相同的参数类型
3):重载方法返回类型可以不同(但是不作为重载标准),重写返回值类型必须有被重写方法相同。
4):重载可以抛出不同异常,写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
5):重写访问修饰符的限制一定要大于等于被重写方法的访问修饰符

构造方法能否被重写呢?

重写是子类方法重写父类的方法,重写的方法名不变,而类的构造方法名必须与类名一致,假设父类的构造方法如果能够被子类重写则子类类名必须与父类类名一致才行,所以 Java 的构造方法是不能被重写的。而重载是针对同一个的,所以构造方法可以被重载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值