Wenn die Methode anders deklariert ist als in der Elternklasse, dann kannst du die der Elternklasse damit nicht überschreiben. Überschreiben bedeutet wirklich eine gleiche Deklaration. Denn das Ziel ist ja, über eine Variable vom Typ der Elternklasse mit einem Objekt vom Typ der abgeleiteten Klasse direkt die Methode aufrufen zu können.
Das geht aber nicht, wenn diese anders deklariert ist. Das ist nicht der Sinn des Überschreibens und damit nicht möglich. Mehrere gleichlautende Methoden werden überladen oder müssen neu eingeführt werden, anders geht es nicht.
Wenn du genauer sagen würdest worum es geht, dann könnte vielleicht jemand eine andere saubere
OOP Lösung vorschlagen.
Dein Quelltextbeispiel ist etwas anders gelagert, oder? Oder geht es dir auch mit den Interfaces um verschieden deklarierte Methoden?