Я пытаюсь инкапсулировать 3 интерфейса в один (ICountable
) и сделать конкретный класс реализующим этот инкапсулирующий интерфейс. `ICountable
код:Общий интерфейс mess
public interface ICountable extends IAddable, Cloneable, Serializable {}
Addable
определение интерфейса:
public interface IAddable<T> {
T add(T other);
}
теперь, когда я пытаюсь реализовать ICountable
в конкретном классе (BaseCounter
) Я получаю сообщение об ошибке, что не реализованы все методы (жалуясь на add
способ). Я не понимаю, почему. BaseCounter
код выглядит следующим образом:
public class BaseCounter implements ICountable {
@Override
public BaseCounter add(BaseCounter other) {
// TODO Auto-generated method stub
return null;
}
}
Изменить add
метод подписи к
public ICountable add(ICountable other)
исправления ситуации. Однако, изначально я хотел был сделать один интерфейс (ICountable
), который расширяет 3 других (2 маркера и 1 интерфейс, который описывает способность класса реализации выполнять add
на объекте того же типа). Что мне нужно изменить, чтобы сделать реализацию add
метода в BaseCounter
выглядеть следующим образом:
public BaseCounter add(BaseCounter other)
Я был бы признателен за ваши предложения.
спасибо, приятель! поймать upvote ... – aviad
вы хорошо. Вы можете добавить некоторые расширения для общих для ограничения, которые должны принимать только ICONTable: общедоступный интерфейс ICountable extends IAddable , Cloneable, Serializable {}. В этом случае в качестве типичного типа могут приниматься только подходы с использованием протокола ICANN. –
alexey28