Вот пример :
Код: Выделить всё
public interface IXMLizable
{
static T newInstanceFromXML(Element e);
Element toXMLElement();
}
Одной из возможных проблем может быть то, что происходит, когда вы звоните:
Код: Выделить всё
IXMLizable.newInstanceFromXML(e);
РЕДАКТИРОВАТЬ: Думаю, я ищу более глубокий ответ, чем «потому что так устроен Java». ".
Есть ли конкретная технологическая причина, по которой статические методы нельзя перезаписать? То есть, почему разработчики Java решили сделать методы экземпляра переопределяемыми, а не статические?
РЕДАКТИРОВАТЬ: Проблема с моим дизайном заключается в том, что Я пытаюсь использовать интерфейсы для обеспечения соблюдения соглашения о кодировании.
То есть цель интерфейса двоякая:
- Я хочу, чтобы интерфейс IXMLizable позволял мне преобразовывать реализующие его классы в элементы XML (с использованием полиморфизма это работает нормально).
- Если кто-то захочет создать новый экземпляр класса, реализующего интерфейс IXMLizable, он всегда будет знать, что будет статический конструктор newInstanceFromXML(Element e).
Подробнее здесь: https://stackoverflow.com/questions/512 ... -interface