【发布时间】:2012-09-25 16:50:33
【问题描述】:
class A{
void m1(A a) {System.out.print("A");}
}
class B extends A{
void m1(B b) {System.out.print("B");}
}
class C extends B{
void m1(C c) {System.out.print("C");}
}
public class d {
public static void main(String[] args) {
A c1 = new C(); C c2 = new C();c1.m1(c2);
}}
这段代码的输出是'A'。
但如果我将 A 类修改为:
class A{
void m1(C a) {System.out.print("A");}
}
那么输出是'C'。有人可以解释一下这段代码是如何工作的吗?
【问题讨论】:
标签: java class inheritance