强制子类重写方法,并将自身作为参数
我有一个抽象的事件类,它有一个抽象的方法:
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;
}