Java: замена подкласса / подтипа параметра при замещении метода?

Я задавал этот вопрос раньше, но у меня была ошибка в коде, которую заметило большинство людей, а не сама проблема.

В любом случае, я пытаюсь переопределить метод интерфейса в классе. Однако я хочу, чтобы тип параметра в методе переопределения был подклассом типа параметра, определенного в методе переопределения.

Интерфейс:

public interface Observer {
 public void update(ComponentUpdateEvent updateEvent) throws Exception;
}

В то время как класс, который переопределяет этот метод:

public class ConsoleDrawer extends Drawer {

//...

 @Override
 public void update(ConsoleUpdateEvent updateEvent) throws Exception {
  if (this.componentType != updateEvent.getComponentType()) {
   throw new Exception("ComponentType Mismatch.");
  }
  else {
   messages = updateEvent.getComponentState(); 
  }
 }

//...

}

ConsoleUpdateEvent является подклассом ComponentUpdateEvent.

Теперь я мог бы просто сделать так, чтобы метод update () в ConsoleDrawer принял ComponentUpdateEvent в качестве параметра, а затем преобразовал его в ConsoleUpdateEvent, но я ищу немного более элегантное решение, если это возможно. Мы будем признательны за Anyhelp. Спасибо.

8
задан Bert F 12 December 2010 в 00:46
поделиться