Как объявлено в интерфейсе EventListener
метод modify
требует аргумент типа Data
(или любого подкласса)
ServerInfoData modify(ServerInfoData data);
принимает аргумент типа ServerInfoData
, однако определение в интерфейсе говорит "Он должен принимать все, что имеет суперкласс типа Data
", что означает, что тип аргументов метода в подклассе не соответствует тому, что объявлено в интерфейсе.
Рассмотрим этот пример:
public static class AnotherData extends Data {
// Whatever
}
public void main() {
EventListener el = new ServerInfoEventListener() {...};
el.modify(new AnotherData()); // We have a problem
}
Проблема: Нет реализации метода для обработки AnotherData
, но она должна быть, потому что EventListener
говорит об этом.ServerInfoData modify(ServerInfoData data)
Не могу принять это, потому что AnotherData
не является экземпляром ServerInfoData
Надеюсь, это поможет.