Почему реализация классов не может определить переопределяющий метод как статический?

Я запутался, почему не допускается следующее:

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

Я понимаю, почему метод в интерфейсе не может быть статичным, но почему не может быть переопределяющий метод?

Я хочу, чтобы все классы реализовалиgetInstance(String name) метод, но в настоящее время я ограничен возможностью вызова метода только в том случае, если объект уже был создан, какой тип побеждает цель ...

*update:* Спасибо за ответы, теперь я понимаю это лучше. По сути, я не должен пытаться заставить служебный класс (или, если на то пошло, класс фабрики) реализовать интерфейс (или, по крайней мере, не таким образом) ...

Ответы на вопрос(4)

Ваш ответ на вопрос