У меня есть интерфейс для фабрики.Предположим, что интерфейс для Module
существует (мне нужно различать подтипы модуля).Любые две фабрики, определенные одним и тем же листовым классом дерева наследования, всегда идентичны.
public interface ModuleFactory<T extends Module> {
T createModule(long seed);
}
Эти фабрики входят в Set
, поэтому их идентичность определяется .equals()
.Следовательно, мне нужен способ обеспечить, чтобы реализующие классы переопределяли этот метод.В противном случае набор будет заполнен дубликатами.
Проблема в том, что Object
уже реализует этот метод, поэтому у любого конкретного класса уже будет реализация метода.Я не могу просто вставить boolean equals(Object obj);
в мой интерфейс, так как любой конкретный класс уже удовлетворит интерфейс с реализацией по умолчанию.Как я могу принудительно переопределить?