Effective Java之慎用重载(四十一)

Java虚拟机的分派中,我们知道:

重载容易产生的问题:重载是根据参数的静态类型选择执行方法,而方法重写是根据参数的动态类型选择执行方法。
例如People p = new Man();那么People是静态类型,Man是动态类型。
覆盖机制很容易让期望落空。因为如果不知道重载是根据参数的静态类型选择执行方法,那么覆盖就不能执行期待执行的方法。

因此,应该避免胡乱使用重载机制。

慎重使用重载机制方法是:

  • 1.避免导出两个相同参数数目的重载方法。

  • 2.能够导出两个相同参数数目的重载方法,但是对于每个重载方法,至少有一个参数是跟其他重载方法的参数是完全不同的。

  • 3.改变方法名代替重载。例如ObjectOutputStream的write方法有writeInt(int),writeLong(long),writeBoolean(boolean),这样显得可读性强而且不会发生重载的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值