Warum kann die Implementierung von Klassen eine überschreibende Methode nicht als statisch definieren?

Ich bin verwirrt, warum Folgendes nicht erlaubt ist:

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

Ich verstehe, warum eine Methode in der Schnittstelle nicht statisch sein kann, aber warum kann die überschreibende Methode nicht sein?

Ich möchte, dass alle Klassen das implementierengetInstance(String name) Methode, aber ich bin derzeit nur in der Lage, die Methode aufzurufen, wenn das Objekt bereits instanziiert wurde, welche Art von den Zweck ...

*aktualisieren:* Danke für die Antworten, ich verstehe es jetzt besser. Grundsätzlich sollte ich nicht versuchen, eine Utility-Klasse (oder eine Factory-Klasse) dazu zu bringen, eine Schnittstelle zu implementieren (oder zumindest nicht auf diese Weise) ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage