Почему реализация классов не может определить переопределяющий метод как статический?
Я запутался, почему не допускается следующее:
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:* Спасибо за ответы, теперь я понимаю это лучше. По сути, я не должен пытаться заставить служебный класс (или, если на то пошло, класс фабрики) реализовать интерфейс (или, по крайней мере, не таким образом) ...