JVM学习:方法重载的优先级

重载:方法名一致,参数长度或者类型不一致。

先放总结,下面为例子

 

  1. 参数具有继承、实现关系,优先考虑子类;
  2. 在不考虑对基本类型自动装拆箱(auto-boxing,auto-unboxing),以及可变长参数的情况下选取重载方法;
  3. 如果在第 1 个阶段中没有找到适配的方法,那么在允许自动装拆箱,但不允许可变长参数的情况下选取重载方法;
  4. 如果在第 2 个阶段中没有找到适配的方法,那么在允许自动装拆箱以及可变长参数的情况下选取重载方法。

 小tip:

  父类中的方法可以和子类中的方法构成重载

一、常用重载

  下图例子,很简单

  

二、参数具有父子关系

  当参数是具有继承/实现的逻辑时,优先选择子类

三、基本类型拆装

  先不考虑拆装箱进行匹配,所以出现了图2的情况,先匹配long,后匹配Integer

  

 

 四、可变长参数

  先不考虑可变长

 

posted @ 2019-01-04 11:19  BBJB  阅读(620)  评论(0编辑  收藏  举报