Ich habe eine Klasse, die von zwei verschiedenen Schnittstellen erbt. Beide Schnittstellen deklarieren eine Methode mit demselben Namen. Wie kann ich für jede Schnittstelle eine andere Implementierung bereitstellen?
In C # ist die Antwort vorhanden, aber in Java funktioniert es nicht: Vererbung von mehreren Schnittstellen mit demselben Methodennamen
Ich habe darüber nachgedacht, eine Union-Implementierung bereitzustellen, die einen Typvergleich verwendet, aber es ist irgendwie hässlich.
Danke
BEARBEITEN : geschlossen, meine Frage war ein Duplikat des Folgenden, danke für die Antworten! Java - Methodenname Kollision in der Schnittstellenimplementierung
Sie können nicht. Schnittstellen beschreiben Verhalten, aber sie implementieren es nicht. Wenn Sie also eine Methode implementieren, können Sie nicht feststellen, von welcher Schnittstelle Sie sie implementieren.
Nein, in Java gibt es kein gleichwertiges Feature.
Und Sie können es nicht selbst tun, weil Sie innerhalb der Methode nicht wissen können, ob der aufrufende Code das Objekt als InterfaceA oder InterfaceB referenziert. Selbst wenn du könntest, ich denke, es wäre eine schlechte Idee.