【发布时间】:2015-12-16 19:09:55
【问题描述】:
为什么子类中不能有与父类相同签名的静态方法?
class Parent {
public final static void fun() {
System.out.println("parent");
}
}
public class Child extends Parent {
// doesn't compile!
public static void fun() {
System.out.println("child");
}
}
我只是想知道为什么他们在这里允许 final 修饰符?我们都知道静态方法属于一个类,不属于对象,所以不可能在子类中重写该方法。所以我final在这里多余。
【问题讨论】:
-
您可以在子类中重新定义静态方法。 +1 @Michael 的回答指出编译失败的确切原因。
标签: java