所以,我有这个问题(我猜这与动态绑定有关),我不能理解.
class A {
public int m(A p) {
return 12;
}
public int n(A p) {
return 38;
}
}
class B extends A {
public int m(B p) {
return 3;
}
public int n(A p) {
return 7;
}
}
class C extends A {
public int m(A p) {
return 38;
}
public int n(A p) {
return 4;
}
}
class D extends A {
public int m(A p) {
return 1;
}
public int n(D p) {
return 2;
}
}
class Main {
public static void main(String argv[]) {
A x = new C();
A y = new D();
D z = new D();
System.out.println(x.m(z) + y.n(z)); //*
}
}
注释行就是我被卡住的地方.为什么结果是76?这取决于什么,因为我在互联网上到处搜索,都找不到一个例子.如果你能想出一点解释,我将不胜感激.