Класс библиотеки Java, который я использую, объявляет
protected getPage(): Page { ... }
Теперь я хочу создать вспомогательный миксин Scala для добавления функций, которые я часто использую. Я не хочу расширять класс, потому что у класса Java есть разные подклассы, которые я хочу расширить в разных местах. Проблема в том, что если я использую getPage() в своем миксине trait, я получаю такую ошибку:
Ограничение реализации: признак
MyMixinобращается к защищенному методуgetPageвнутри конкретного метода признака.
Есть ли решение, как заставить его работать, не затрагивая мои подклассы? И почему существует это ограничение?
Пока что я придумал обходной путь: я переопределяю метод в трейте как
override def getPage(): Page = super.getPage();
Кажется, это работает, но я не полностью удовлетворен. К счастью, мне не нужно переопределять getPage() в моих подклассах, но если бы мне понадобилось, я бы получил два переопределения одного и того же метода, и этот обходной путь не сработает.