Por que as classes de implementação não podem definir um método de substituição como estático?

Estou confuso porque o seguinte não é permitido:

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)
  }
}

Eu entendo porque um método na interface não pode ser estático, mas por que o método de substituição não pode ser?

Eu quero que todas as classes implementem ogetInstance(String name) método, mas atualmente estou limitado a apenas ser capaz de chamar o método se o objeto já foi instanciado que tipo de derrota o propósito ...

*atualizar:* Obrigado pelas respostas, eu entendo melhor agora. Basicamente eu não deveria estar tentando fazer uma classe de utilitário (ou uma classe de fábrica) implementar uma interface (ou pelo menos, não desta forma) ...

questionAnswers(4)

yourAnswerToTheQuestion