大家看下面的代码
class A {
public static void pri() {
System.out.println("A");
}
}
public class B extends A {
public static void pri() {
System.out.println("B");
}
public static void main(String[] args) {
A a = new B();
a.pri();
}
}
输出结果是:
A
但是看下面的代码:
class A {
public void pri() {
System.out.println("A");
}
}
public class B extends A {
public void pri() {
System.out.println("B");
}
public static void main(String[] args) {
A a = new B();
a.pri();
}
}
结果输出的确是:
B
希望我这能抛砖引玉,大家讨论一下为什么会这样,和java内部的原理。(Java中静态方法不能被重写)
本文通过两个示例对比了Java中实例方法与静态方法的行为差异,特别强调了静态方法不能被重写的特性。
1280

被折叠的 条评论
为什么被折叠?



