【发布时间】:2015-11-11 07:27:24
【问题描述】:
此代码存在编译问题。如何获得a.f()?
class A {
int i = 1;
int f() {
return i;
}
static char g() {
return 'A';
}
}
class B extends A {
int i = 2;
int f() {
return -i;
}
static char g() {
return 'B';
}
}
class Test {
public static void main(String args[]) {
B b = new B();
System.out.println(b.i);
System.out.println(b.f());
System.out.println(b.g());
System.out.println(B.g());
A a = b;
System.out.println(a.i);
System.out.println(a.f());
System.out.println(a.g());
System.out.println(A.g());
}
}
这就是结果
2
-2
B
B
1
-2
A
A
【问题讨论】:
标签: java access-modifiers