java – 为什么接口方法在实现接口的类中不能是静态的?

让我们假设我有这样的代码:

public interface JustAnInterface {
    void doSomething();
}

public class JustAnInterfaceImplementation implements JustAnInterface {

    @Override
    public static void doSomething() {

    }
}

为什么静态doSomething()方法显示错误“方法不覆盖其超类的方法”?

最佳答案
有人可能会这样说:因为@Override和static根本就没有合在一起.

请记住:多态性仅适用于非静态方法. static表示您的方法“附加”到包含类.

换句话说:您在编译时了解静态方法调用的所有内容.但是确定调用哪个重写方法的过程在运行时发生.这两个概念在Java中没有结合在一起.

转载注明原文:java – 为什么接口方法在实现接口的类中不能是静态的? - 代码日志