【Java】方法重载和方法重写的区别

方法重载和方法重写在英文中分别是overload和override,很多人在学习java的过程中总是分不清重载和重写这两个方法,实际上,这两个方法还是有很大的差别了,真正理解了这两个方法后,区别自然就明了了。


方法重载要遵循的原则:两同一不同

(1)两同:同一个类中方法名相同

(2)一不同:参数列表(个数或类型)不同。

至于方法中的其他部分,如方法返回值类型、修饰符等,与方法重载没有任何关系。


方法重写要遵循的原则:两同两小一大

(1)两同:方法名相同、形参列表相同;

(2)两小:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;

(3)一大:是子类方法的访问权限应比父类方法的访问权限更大或相等。


总结:重载和重写方法虽然名字有些类似,但是他们之间有很少的联系,除了二者都是发生在方法之间,并要求方法名相同之外,没有太大的相似之处。重载主要发生在同一个类的多个同名方法之间,而重写发生在子类和父类同名方法之间。当然,父类方法和子类方法也可以发生重载,因为子类会获得父类的方法,如果子类定义了一个与父类方法有相同的方法名,但参数列表不同的方法,就会形成父类方法和子类方法的重载。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值