Java的重载解析过程是以两阶段运行的:
- 选取所有可获得并且可应用的方法或构造器
- 在第一阶段选取的方法或构造器中选取最类型最匹配的一个
(1)如果两个方法参数有继承关系,那子类作参数的那个方法更匹配
(2)如果两个方法无继承关系,而又无法根据参数类型选择具体为哪个方法时,则编译时会报错
public class Demo {
private void test(Thread t) {
System.out.println("Thread:" + t);
}
private void test(Runnable r) {
System.out.println("Runnable:" + r);
}
public static void main(String[] args) {
new Demo().test(null);
}
}
运行结果:
根据参数类型不确定选择确定方法

选择参数类型最匹配的方法

本文详细解析了Java中方法重载的两阶段运行过程,包括选取所有可获得且可应用的方法或构造器,以及在这些方法中选取最类型匹配的一个。通过示例代码解释了当参数类型无法确定具体方法时,编译器如何处理这种情况。
97

被折叠的 条评论
为什么被折叠?



