Я создаю "Менеджер контактов" на Java.
У меня есть суперкласс, называемый Contact, который имеет два базовых класса: PersonalContact и BusinessContact.
У меня есть интерфейс Событие, который реализуется классами День рождения и Встреча. (День рождения содержит один объект DateTime, а Meeting имеет два для начала и окончания).
PersonalContact содержит TreeSet Дни рождения и BusinessContact содержит набор Заседания.
Теперь, в суперклассе Контакт, я хочу создать абстрактный метод, называемый getEventsWithinPeriod(), который вернет TreeSet всех дней рождения и/или встреч за определенный промежуток времени.
Проблема в том, что я не знаю, как сказать абстрактный метод, а затем методы базового класса, что нужно вернуть.
Например, это код, который я использовал в Контакт;
public abstract Set<Event> getEventsWithinPeriod(DateTime start, DateTime end);
И в PersonalContact;
public Set<Birthday> getEventsWithinPeriod(DateTime start, DateTime end){
Set<Birthday> birthdaysThatAreWithin = new TreeSet<Birthday>();
//CODE
return birthdaysThatAreWithin;
Однако в компиляторе я получаю сообщение об ошибке Set<Birthday>
:
"Тип возврата несовместим с Contact.getEventsWithinPeriod(DateTime, DateTime)"
Каковы правильные термины и результаты, которые я должен использовать? Почему моя текущая попытка неправильная?