我正在使用Java构建一个“联系人管理器”。
我有一个名为“Contact”的超类,它有两个基类;PersonalContact和BusinessContact。
我有一个名为Event的接口,由类Birthday和Meeting实现。(Birthday包含一个DateTime对象,而Meeting有两个对象用于开始和结束时间)。
PersonalContact 持有一组Birthdays,而 BusinessContact持有一组Meetings。
现在,在超类 Contact 中,我想创建一个抽象方法 called "getEventsWithinPeriod()",它将返回给定时间段内所有生日和/或会议的TreeSet。
问题是,我不知道如何告诉抽象方法,然后再告诉基类方法返回什么。
例如,这是我在 Contact 中使用的代码;
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)不兼容"
我应该使用哪些正确的术语和返回值?为什么我的当前尝试是错误的?
Event
接口?接口的主要思想是通过定义实现的可见方法列表来使代码清晰。只需使用TreeSet<Event>
即可。 - Maxim Shoustin