¿Por qué las clases implementadas no pueden definir un método de reemplazo como estático?

Estoy confundido por lo que no está permitido lo siguiente:

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

Entiendo por qué un método en la interfaz no puede ser estático, pero ¿por qué no puede ser el método de anulación?

Quiero que todas las clases implementen elgetInstance(String name) método, pero actualmente estoy limitado a solo ser capaz de llamar al método si el objeto ya ha sido instanciado qué tipo de derrotas el propósito ...

*actualizar:* Gracias por las respuestas, ahora lo entiendo mejor. Básicamente, no debería tratar de hacer que una clase de utilidad (o una clase de fábrica) implemente una interfaz (o al menos, no de esta manera) ...

Respuestas a la pregunta(4)

Su respuesta a la pregunta