Я хотел бы переопределить метод в подклассе, который использует другой класс в параметре метода, но в своем суперклассе использует суперкласс других классов в своем параметре. Например,
public class ManagerImpl<P extends Action> implements Manager {
public <T extends Domain> T execute(String blah, Session session) {
//do something
}
}
public class ContextManagerImpl<P extends Action> extends ManagerImpl {
@Override
public <T extends Domain> T execute(String blah, Session session) {
//do something
}
}
Это кажется довольно простым, однако класс Session, который я использую в ManagerImpl, является суперклассом класса Session, который я использую в ContextManagerImpl. Когда я пытаюсь переопределить, я получаю сообщение об ошибке: «Метод execute должен переопределить или реализовать метод супертипа», предположительно, потому что метод передает другой сеанс. Я не могу изменить имя класса Session, и мне нужно использовать метод в подклассе Session в ContextManagerImpl. Есть идеи?