Dlaczego implementacja klas nie może definiować metody nadpisywania jako statycznej?

Jestem zdezorientowany, dlaczego nie wolno:

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

Rozumiem, dlaczego metoda w interfejsie nie może być statyczna, ale dlaczego nie może być nadrzędna metoda?

Chcę, aby wszystkie klasy implementowałygetInstance(String name) metoda, ale obecnie ograniczam się do wywołania metody tylko wtedy, gdy obiekt został już utworzony, co powoduje porażkę celu ...

*aktualizacja:* Dzięki za odpowiedzi, rozumiem to lepiej teraz. Zasadniczo nie powinienem starać się, aby klasa narzędziowa (lub klasa fabryczna) implementowała interfejs (a przynajmniej nie w ten sposób) ...

questionAnswers(4)

yourAnswerToTheQuestion