Why can't implementing classes define an overriding method as static?
I'm confused why the following is not allowed: public interface MyInterface { MyInterface getInstance(String name); } public class MyImplementation implements MyInterface { public MyImplementation(String name) { } @Override public static MyInterface getInstance(String name) { // static is not allowed here return new MyImplementation(name) } } I understand why a method in the interface cannot be static, but why can't the overriding method be? I want all classes to implement the getInstance(String name) method, but I'm currently limited to only being able to call the method if the object has