私が持っているとします:
class Event {}
class DoorBell extends Event {}
class PhoneCall extends Event {}
class EventGenerator {
static Event getEvent() {
if (today.isSunday())
return new DoorBell()
else
return new PhoneCall();
}
}
class EventHandler {
void HandleEvent(DoorBell doorBell) { answer door; }
void HandleEvent(PhoneCall phoneCall) { answer phone; }
void consumeEvent() {
Event e = EventGenerator.getEvent();
HandleEvent(e);
}
}
HandleEvent(Event) は未定義であるため、HandleEvent(e) はコンパイルされません。これに対する解決策はありますか?それとも、どんなイベントなのか聞く必要がありますか?