我想确保我对静态多态性的理解是正确的
请看下面的代码
class a {
int x=0;
}
class b extends a {
int x=4;
}
public class main4 {
public static void main(String[] args) {
a f = new b();
System.out.println(f.x);
b ff = new b();
System.out.println(ff.x);
}
}
输出是
0
4
发生这种情况是因为编译器查看引用的声明类型并据此确定在编译时打印哪个 x 吗?
(f 被声明为类型 a,编译器查看 fx 并决定它意味着 ax)??
&如果是这样,这称为静态多态性或隐藏还是什么?
提前致谢
慕姐8265434
相关分类