【发布时间】:2016-11-17 14:34:37
【问题描述】:
我在 Java 中遇到了一些关于继承的问题。 我不明白为什么以下两个程序有这些输出! 有人可以帮我吗? :)
1)
public class A {
int foo() {
return 1;
}
}
public class B extends A {
int foo() {
return 2;
}
}
public class C extends B {
int bar(A a) {
return a.foo();
}
}
C x = new C();
System.out.println(x.bar(x));
// OUTPUT:2
2)
public class A {
int e=1;
}
public class B extends A {
int e=2;
}
public class C extends B {
int bar(A a){
return a.e;
}
}
C x= new C();
System.out.println(x.bar(x));
// OUTPUT:1
【问题讨论】:
标签: java inheritance