JVM学习:方法重载的优先级
重载:方法名一致,参数长度或者类型不一致。
先放总结,下面为例子
- 参数具有继承、实现关系,优先考虑子类;
- 在不考虑对基本类型自动装拆箱(auto-boxing,auto-unboxing),以及可变长参数的情况下选取重载方法;
- 如果在第 1 个阶段中没有找到适配的方法,那么在允许自动装拆箱,但不允许可变长参数的情况下选取重载方法;
- 如果在第 2 个阶段中没有找到适配的方法,那么在允许自动装拆箱以及可变长参数的情况下选取重载方法。
小tip:
父类中的方法可以和子类中的方法构成重载
一、常用重载
下图例子,很简单
二、参数具有父子关系
当参数是具有继承/实现的逻辑时,优先选择子类
三、基本类型拆装
先不考虑拆装箱进行匹配,所以出现了图2的情况,先匹配long,后匹配Integer
四、可变长参数
先不考虑可变长