Я понимаю, что ни абстрактный класс, ни интерфейс не могут содержать метод, который является абстрактным и статическим из-за проблем неоднозначности, но есть ли обходной путь?
Я хочу иметь либо абстрактный класс, либо интерфейс, который предписывает включение статического метода во все классы, которые расширяют / реализуют этот класс / интерфейс. Есть ли способ сделать это в Java? Если нет, то это может быть моей последней каплей с Java ...
РЕДАКТИРОВАТЬ 1: Контекст этой проблемы в том, что у меня есть группа классов, на данный момент они называются Stick, Ball и Toy, у которых есть несколько записей в базе данных. Я хочу создать суперкласс / интерфейс с именем Fetchable, который требует статический метод getFetchables()
в каждом из классов ниже. Причина, по которой методы в Stick, Ball и Toy должны быть статическими, заключается в том, что они будут общаться с базой данных, чтобы получить все записи в базе данных для каждого класса.
РЕДАКТИРОВАТЬ 2: Для тех, кто говорит, что вы не можете сделать это на любом языке, это не так. Конечно, вы можете сделать это в Ruby, где методы класса наследуются. Это не тот случай, когда кто-то не получает OO, это случай отсутствия функциональности в языке Java. Вы можете попытаться доказать, что вам никогда не нужно наследовать статические (классовые) методы, но это совершенно неверно, и я буду игнорировать любые ответы, которые приводят такие аргументы.