【发布时间】:2018-12-19 10:10:02
【问题描述】:
我真的很想理解它,但我无法理解。为什么会打印:Selected: method 1 两次? 我觉得应该打印出来
已选择:方法 1
已选择:方法 2
因为 c2 的真正类型是 ClassTwo。请看下面的代码。
public class ClassOne{}
public class ClassTwo extends ClassOne{}
public class Module {
public void methodModule(ClassOne c){
System.out.println("Selected: method 1");
}
public void methodModule(ClassTwo c) {
System.out.println("Selected: method 2");
}
}
public class TestModule {
public static void main(String[] args) {
Module m = new Module();
ClassOne c1 = new ClassOne();
ClassOne c2 = new ClassTwo();
m.methodModule(c1);
m.methodModule(c2);
}
}
【问题讨论】:
标签: java binding overloading