OOP Interfaces mit gleichem Methoden

Status
Nicht offen für weitere Antworten.

andkul

Bekanntes Mitglied
Hallo,
ich hab eine Frage zu Interfaces.
Ich hab ein InterfaceA und ein InterfaceB und eine Klasse ClassAB, die beide Interfaces implementiert.
Was passiert dann, wenn InterfaceA und InterfaceB eine Methode mit gleichem Namen und gleicher Signatur vorgeben?

danke
 

Michael...

Top Contributor
einfach ausprobieren... Was erwartest Du, dass passieren soll?

Ein Interface gibt nur vor welche Methoden implementiert werden müssen - und nicht wie.
Daher stellt dieser Fall kein Problem dar: Beide Interfaces sind zufrieden, wenn die Methode in ClassAB implemtiert wurde.
 
S

Spacerat

Gast
Was soll schon passieren? ClassAB muss diese Methode implementieren. Und da es sich um die selben Signaturen handelt und es ferner nicht anders geht, sind die Vorgaben beider Interfaces erfüllt, wenn ClassAB diese Methode genau nur einmal implementiert. Wenn z.B. InterfaceA nur Methoden hat, welche auch in InterfaceB vorkommen, wäre es sinnvoller, wenn InterfaceB InterfaceA erweitert, statt die Methoden in InterfaceB neu zu definieren.
Java:
public interface InterfaceA
{
  methodeA(Parameter par);
  methodeB(Parameter par);
}

public interface InterfaceB
{
  methodeA(Parameter par);
  methodeB(Parameter par);
  methodeC(Parameter par);
}
wird zu
Java:
public interface InterfaceA
{
  methodeA(Parameter par);
  methodeB(Parameter par);
}

public interface InterfaceB
extends InterfaceA
{
  methodeC(Parameter par);
}
ClassAB müsste nun nur noch InterfaceB implementieren, um auch eine Instanz von InterfaceA zu werden.
@Edit: Zwar wieder viel zu langsam, dafür aber ausführlich :D
 

Schumi

Bekanntes Mitglied
Problematisch wird es allerdings, wenn die Methoden unterschiedliche Excpetions deklarieren.
 

musiKk

Top Contributor
Problematisch wird es allerdings, wenn die Methoden unterschiedliche Excpetions deklarieren.
Die Frage war ja auf die gleiche Signatur bezogen. Ich würde die geworfenen Exceptions dazu zählen. Kritischer finde ich
Ein Interface gibt nur vor welche Methoden implementiert werden müssen - und nicht wie.
Natürlich ist das technisch gesehen richtig, aber ein Interface schreibt ja einen bestimmten Vertrag vor. Der steht eben nur im JavaDoc, weil er sich so schlecht formalisieren lässt (keine Ahnung, ob das in anderen Sprachen geht, in Java ist mir nichts bekannt). Hat die Methode in den beiden Interfaces sich widersprechende Verträge, kann es keine sinnvolle Klasse geben, die beide Interfaces implementiert.
 
M

maki

Gast
Die Frage war ja auf die gleiche Signatur bezogen. Ich würde die geworfenen Exceptions dazu zählen.
Die möglichen Exceptions gehören nicht zur Signatur, definiert in der JLS.
Wäre sonst auch sehr verwirrend ;)
 

byte

Top Contributor
Vielmehr ists problematisch, wenn die beiden Methoden andere Return Types haben.
 

andkul

Bekanntes Mitglied
naja, das Problem ist, dass ich diese Architektur nicht selbst gemacht hab, und ich daran nichts ändern kann, sollte...

Was mein Problem war:
Ich hatte InterfaceA und InterfaceB, beide werden von ClassAB implementiert.
Wenn jetzt irgendeine Methode auf ClassAB aufgerufen wird, wollte ich herausfinden können, von welchem Interface die Methode vorgegeben wurde. Als Ergebnis hätte nur eines der beiden Interfaces herauskommen dürfen, da ich aufgrund dessen wieder unterscheidungen treffen müsste...

Hat sich aber jetzt schon erledigt, es dürfen in korrespondierenden Interfaces einfach keine identischen Methoden vorgegeben werden, basta.

Trotzdem danke für die Anregungen, hab ich schon wieder was gelern :)
 
B

bygones

Gast
Ich hatte InterfaceA und InterfaceB, beide werden von ClassAB implementiert.
Wenn jetzt irgendeine Methode auf ClassAB aufgerufen wird, wollte ich herausfinden können, von welchem Interface die Methode vorgegeben wurde. Als Ergebnis hätte nur eines der beiden Interfaces herauskommen dürfen, da ich aufgrund dessen wieder unterscheidungen treffen müsste...
den usecase will ich mal sehen
 
M

maki

Gast
den usecase will ich mal sehen
"Anti-OO" Programmierung mit einer OO Sprache vielleicht?

andkul,

wenn man Polymorphy nutzt will man eigentlich nicht wissen welches Objekt die Methoden eines Interfaces implementiert hat, sonst würde man sich die Polymorphy gleich sparen ;)
 
S

Spacerat

Gast
Na da wäre ich auch mal auf den Usecase gespannt. Für mich hört sich das so an, als solle in der konkreten Klasse unterschieden werden, zu welchem Interface die aufgerufene Methode gehört???:L. Aber:
1. So etwas weis man als Entwickler doch von vorneherein, wenn man ein Interface implementiert.
2. Wollte man trotzdem zwischen Methoden gleicher Signatur in der konkreten Klasse unterscheiden, muss das ein zwangläufig Design-Fehler sein (InterfaceA-Methode soll etwas anderes als InterfaceB-Methode machen), weil mindestens ein Interface zuviel implementiert wurde, welches deswegen in eine eigene konkrete Klasse gehört.
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Wozu dient Interfaces? Java Basics - Anfänger-Themen 6
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
I XML und Interfaces aus anderen Projekten Java Basics - Anfänger-Themen 3
8u3631984 Record - Interfaces Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
B JaxB und Interfaces? Java Basics - Anfänger-Themen 2
M Funktionale Interfaces Java Basics - Anfänger-Themen 3
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
M Klasse erbt von Interfaces Java Basics - Anfänger-Themen 6
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
H Polymorphie Interfaces und statischer Typ Java Basics - Anfänger-Themen 33
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Interface Warum Interfaces? Java Basics - Anfänger-Themen 5
R interfaces Java Basics - Anfänger-Themen 1
B Interfaces Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
J Interfaces? Java Basics - Anfänger-Themen 32
M Erstellung Interfaces....totale Anfängerfrage Java Basics - Anfänger-Themen 16
S Erste Schritte Innere Klassen und Interfaces Java Basics - Anfänger-Themen 2
J Wofür dienen Interfaces ? Java Basics - Anfänger-Themen 1
Hijo2006 Frage zu Interfaces Java Basics - Anfänger-Themen 21
Hacer Interfaces implementieren Java Basics - Anfänger-Themen 7
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
L Via Interfaces unterschiedliche Klassen ansprechen Java Basics - Anfänger-Themen 8
A Verwendung von Interfaces Java Basics - Anfänger-Themen 7
J Interfaces Java Basics - Anfänger-Themen 15
D Frage bzgl. Interfaces Java Basics - Anfänger-Themen 10
D Interface Verständnisprobleme von Interfaces Java Basics - Anfänger-Themen 5
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
S Rollen verändern, Interfaces austauschen wie? Java Basics - Anfänger-Themen 10
K Interfaces/Klassen etc. Java Basics - Anfänger-Themen 6
F Implementierung von Interfaces -> Problem mit main Java Basics - Anfänger-Themen 12
S Verständnisproblem bei Interfaces Java Basics - Anfänger-Themen 6
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
O Java Interfaces für andere Programmiersprachen zur Verfuegung stellen? Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Compiler-Fehler Alle Methoden eines Interfaces Implementiert dennoch Fehler Java Basics - Anfänger-Themen 3
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
F Best Practice UML/Planung eines Projektes (Klassen, Interfaces, ...) Java Basics - Anfänger-Themen 0
V Vererbung Vererbung, Interfaces und OOP... Java Basics - Anfänger-Themen 10
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
A Interface Poymorphismus bei Interfaces Java Basics - Anfänger-Themen 2
Pentalon Eclipse JUNO keine Vorschläge von Methoden bzw. Interfaces der eigenen Klassen Java Basics - Anfänger-Themen 5
R Mehrere Interfaces(Comparable, ...) Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
D Interfaces und allgemeingültige Methodenaufrufe Java Basics - Anfänger-Themen 6
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
S OOP Wann Proxies und Interfaces? Java Basics - Anfänger-Themen 3
M Interface @Inject mit Interfaces? Java Basics - Anfänger-Themen 2
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
V mehrfachvererbung unter interfaces Java Basics - Anfänger-Themen 10
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
T Interfaces und Implementierungen Java Basics - Anfänger-Themen 12
S Interface mehrere Interfaces Java Basics - Anfänger-Themen 2
M Vererbung Problem bei Interfaces Java Basics - Anfänger-Themen 8
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
F Interfaces Java Basics - Anfänger-Themen 4
M Frage zu Interfaces Java Basics - Anfänger-Themen 3
N Generics und Interfaces Java Basics - Anfänger-Themen 5
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
N OOP Vererbung von Interfaces Java Basics - Anfänger-Themen 12
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
P Frage zu Interfaces Bsp. Java Basics - Anfänger-Themen 9
A Deklarationen in abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 11
R Adapterklassen vs Interfaces Java Basics - Anfänger-Themen 6
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
A Obstlager Interfaces Java Basics - Anfänger-Themen 7
K Theor. Frage zu Interfaces Java Basics - Anfänger-Themen 30
T Frage zu Interfaces und Abstrakten Klassen Java Basics - Anfänger-Themen 4
J Interfaces Java Basics - Anfänger-Themen 14
L Interfaces Java Basics - Anfänger-Themen 5
J spiel "Gefangenendilemma" Probleme mit Interfaces Java Basics - Anfänger-Themen 8
H Interfaces in java? Java Basics - Anfänger-Themen 2
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
D Interfaces / Schnittstellen Java Basics - Anfänger-Themen 8
I Probleme mit Interfaces Java Basics - Anfänger-Themen 4
K Interfaces "Schreibaufwand" Java Basics - Anfänger-Themen 53
I Interfaces Java Basics - Anfänger-Themen 34
bigbasti Warum genau braucht man Interfaces? Java Basics - Anfänger-Themen 10
A Programmieren gegen Interfaces Java Basics - Anfänger-Themen 4
I Frage zu Collection und List Interfaces Java Basics - Anfänger-Themen 2
7 Interfaces - Aufbau Java Basics - Anfänger-Themen 9
G Interfaces mit gleichen Methoden Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben