【发布时间】:2019-04-08 11:22:03
【问题描述】:
我有一个抽象事件类,它有一个抽象方法:
abstract boolean intersect(Event object);
此方法应根据特定子类的实例变量检查 Event 子类的两个实例是否相交。我想强制 Event 的任何子类覆盖其实例变量上的方法。设计这个的最佳方法是什么?这是我当前的实现,这是错误的,因为我正在更改参数类型。我也尝试过使用接口,但在类型参数方面遇到了类似的问题。
@Override
public boolean intersect(SubClassEvent e2) {
boolean intersects = false;
if(this.weekDay == e2.weekDay) {
if (this.getStartTime() < e2.getStartTime() && this.getEndTime() > e2.getStartTime()) {
intersects = true;
}
else if(this.getStartTime() >= e2.getStartTime() && this.getStartTime() < e2.getEndTime()){
intersects = true;
}
}
return intersects;
}
【问题讨论】:
标签: java generics inheritance casting type-parameter