title: Why can't implementing classes define an overriding method as static?
body: <p>I'm confused why the following is not allowed:</p>
  
  <pre><code>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)
    }
  }
  </code></pre>
  
  <p>I understand why a method in the interface cannot be static, but why can't the overriding method be? </p>
  
  <p>I want all classes to implement the <code>getInstance(String name)</code> method, but I'm currently limited to only being able to call the method if the object has already been instantiated which kind of defeats the purpose...</p>
  
  <hr>
  
  <p><em><strong></em>*update:<em>*</em></strong> Thanks for the answers, I understand it better now. Basically I shouldn't be trying to make a utility class (or a factory class for that matter) implement an interface (or at least, not in this way)...</p>