mehrfachvererbung unter interfaces

V

vanny

Gast
mir ist zu Ohren gekommen, dass Interfaces von mehreren Interfaces erben können.

1. Ist das korrekt?
2. Ist das sinnvoll?

Gruß vanny
 

Marco13

Top Contributor
1. Ja
2. Ja
(Man kann es sinnvoll einsetzen - womit die Frage, ob es sinnvoll ist, dass Interfaces von mehreren Interfaces erben können, mit "Ja" zu beantworten ist).

Alle Beispiele, die mir jetzt einfallen würden, wären ZU plakativ ;)
 
N

nillehammer

Gast
1. Ist das korrekt?
Ja, folgender Code ist gültig:
Java:
public interface MyInterface extends Serializable, Comparable<String> {
... ggf. weitere Methoden
}

2. Ist das sinnvoll?
Ich tendiere eher zu Nein. Interfaces erfüllen den Zweck, über die deklarierten Methoden eine bestimmte Funktionalität zu definieren, die ein Implementierer bereit stellen muss. Meiner Meinung nach sollten Interfaces möglichst schlank gehalten werden und alles vermieden werden, was sie aufbläht, also auch Extenden mehrerer Interfaces. Die Zusammenführung sollte letzlich auf Klassenebene passieren.
 

Marco13

Top Contributor
Naja... Sowas wie
Java:
interface Readable { int read(); }
interface Writable { void write(int i); }

interface RandomAccess extends Readable, Writable { }
kann doch schon sinnvoll sein?! Ich würd's jedenfalls nicht pauschal bewerten. Wie gesagt: Man KANN es sinnvoll einsetzen. (Sicher kann man auch Murks damit machen, aber das kann man immer ;) )
 
N

nillehammer

Gast
kann doch schon sinnvoll sein?! Ich würd's jedenfalls nicht pauschal bewerten
Ich habe es deswegen auch relativ schwach formuliert mit: "Ich tendiere zu Nein". Dein Beispiel ist ein gutes Beispiel für einen sinnvollen Einsatz, weil die zusammengefassten Funktionalitäten thematisch gut zusammen passen. Es passiert aber schnell, dass man Funktionalitäten zusammenfasst, die nun so überhaupt nichts mit einander gemein haben. Dann finde ich es eher schlechtes Design, sie in einem Interface zusammenzufassen.
 
V

vanny

Gast
Ich war mir halt auch nicht schlüssig, ob es wirklich klug ist, mehrere Interfaces quasi zu bündeln.
Zumal man dort auch schnell mal in schlingern geraten könnte, zwecks gleichnamiger JavaKonstanten.
Wie würde man die denn gezielt ansprechen, mit "super."?

Aber danke für die kleine Diskussion, dann war meine Vorsicht zu diesem Thema ja nicht unbegründet.:)


soo loong Vanny
 

Michael...

Top Contributor
Zumal man dort auch schnell mal in schlingern geraten könnte, zwecks gleichnamiger JavaKonstanten.
Wie würde man die denn gezielt ansprechen, mit "super."?
Mit super ist bei Interfaces nicht viel.

Konstanten sind über den Klassen bzw. Instanznamen eindeutig identifizierbar:
Code:
InterfaceA.Konstante1
 
V

vanny

Gast
Nur nochmal zum Fairständnis xD

ich habe interface A und B und C

C erbt von A und B .

ich implementiere (und importiere) ja nur C

alle haben die Konstante K.

muss ich dan über C gehen (C.A.K)?
oder reicht dann (A.K)?
 
Zuletzt bearbeitet von einem Moderator:
M

mb

Gast
Nur nochmal zum Fairständnis xD

ich habe interface A und B und C

C erbt von A und B .

ich implementiere (und importiere) ja nur C

alle haben die Konstante K.

muss ich dan über C gehen (C.A.K)?
oder reicht dann (A.K)?
Du solltest in dem Fall lieber dieses ehrlich gesagt ziemlich kaputte Design überdenken. Constant Interface ist ja schon ein Anti-Pattern, aber das mit Mehrfachvererbung zu kombinieren setzt dem Ganzen die Krone auf.
 
V

vanny

Gast
Constant Interface ist ja schon ein Anti-Pattern, aber das mit Mehrfachvererbung zu kombinieren setzt dem Ganzen die Krone auf.

muha xD,

is ja klar, das das unterste schublade ist, doch wenn ich mal auf irgend einen Code stoße, der plötzlich ne Konstante aus nem Interface zieht, welches nicht implementiert wurde, dann hätte ich jetzt eine Erklärung dafür, fals dieses Konstrukt doch mal benutzt wurde.

Ist ne reine Interressenfrage gewesen.

Damit werde ich das Thema hier mal als erledigt markieren, ihr habt mich wie immer sehr schön aufgeklärt.

Dankö und Gruß Vanny:toll:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
E Umsetzung von Mehrfachvererbung in Java Java Basics - Anfänger-Themen 8
U Vererbung Mehrfachvererbung - Wie umgehen? Java Basics - Anfänger-Themen 3
B Vererbung "Mehrfachvererbung" ermöglichen? Java Basics - Anfänger-Themen 9
P OOP Problem: Mehrfachvererbung Java Basics - Anfänger-Themen 6
N Frage zu Interfaces (in Bezug auf Mehrfachvererbung) Java Basics - Anfänger-Themen 3
A Einfache Frage zur Mehrfachvererbung Java Basics - Anfänger-Themen 3
M Wo den Ordner javafx-sdk-21.0.2 unter Linux ablegen? Java Basics - Anfänger-Themen 5
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
nbergmann Umgebungsvariablen einstellen unter Windows 7 klappt nicht Java Basics - Anfänger-Themen 2
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
thor_norsk Datentypen unter Java Java Basics - Anfänger-Themen 3
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
U BestPractise für Deployment unter Windows gesucht Java Basics - Anfänger-Themen 12
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
B Java Mail -> Mail senden, ist aber nich in IMAP unter "Gesendet" Java Basics - Anfänger-Themen 3
D Wert des Arrays unter Bedingungen ändern Java Basics - Anfänger-Themen 1
M Speichern unter. Java Basics - Anfänger-Themen 11
L Linux Befehle unter Windows in Eclipse ausführen Java Basics - Anfänger-Themen 3
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
E Knoten eines Baumes unter Bedinung zählen Java Basics - Anfänger-Themen 2
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
F Console command unter Linux Java Basics - Anfänger-Themen 7
C GUI Programmierung unter Windows mit Java womit? Java Basics - Anfänger-Themen 11
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
S Compiler-Fehler javac hat Probleme mit Paketen unter OSX Java Basics - Anfänger-Themen 2
N Eclipse - eigene Icons unter ClassPath Resource Java Basics - Anfänger-Themen 0
G Erste Schritte Unter Mac "Path" anpassen .bash_profile? Java Basics - Anfänger-Themen 5
C Java stellt unter Windows keine Umlaute dar Java Basics - Anfänger-Themen 9
J Ordner unter Windows Verstecken Java Basics - Anfänger-Themen 2
F Erste Schritte Unter Windows programmieren und dann auf Linux laufen lassen Java Basics - Anfänger-Themen 4
Z Gleiches Verzeichnis für class und java unter Windows Muss? Java Basics - Anfänger-Themen 11
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
W Datei wird aus resources unter Windows nicht kopiert Java Basics - Anfänger-Themen 1
S Datei einlesen - Dateipfad unter Linux anpassen Java Basics - Anfänger-Themen 12
A Java IDE unter 400mb?? Java Basics - Anfänger-Themen 3
M JSF Projekt erstellen unter Eclipse Java Basics - Anfänger-Themen 7
A .jar unter Linux nutzen Java Basics - Anfänger-Themen 2
G Java unter Mac = schlecht | Windows = gut? Java Basics - Anfänger-Themen 14
M datei startet unter windows 7 nicht Java Basics - Anfänger-Themen 12
N .jar läuft nicht unter Windows 7 Starter Java Basics - Anfänger-Themen 4
F Exportieren als ausführbare Jar-Datei unter Ubuntu nicht möglich Java Basics - Anfänger-Themen 17
M in jTable schreiben unter Bedingung Java Basics - Anfänger-Themen 3
FrozeTee .java Dateien unter Windows 7 werden nicht angezeigt Java Basics - Anfänger-Themen 7
J Erste Schritte Speichern / Speichern unter / title Frame Java Basics - Anfänger-Themen 5
S Erste Schritte import für andere Klassenfiles verfügbar machen? (Java unter Eclipse) Java Basics - Anfänger-Themen 8
A Probleme mit JAR-Datei-Erstellung unter Eclipse Java Basics - Anfänger-Themen 23
S Umgebungsvariablen unter Windows XP Java Basics - Anfänger-Themen 6
S Classpath Libraries werden unter Linux nicht erkannt Java Basics - Anfänger-Themen 5
H speichern unter (JFileChooser) Java Basics - Anfänger-Themen 2
B Javadoc-Befehl unter Ubuntu Java Basics - Anfänger-Themen 2
Z Umgebungsvariable PATH-Umgebungsvariable unter Windows 7 Java Basics - Anfänger-Themen 27
Z [TrayIcon] Transparent unter Linux Java Basics - Anfänger-Themen 10
L Farbe unter Cursor bestimmen Java Basics - Anfänger-Themen 5
D Pfadangabe unter windows Java Basics - Anfänger-Themen 7
K kan 64Bit Version unter Win7Pro64 nicht installieren Java Basics - Anfänger-Themen 12
J File unter Linux Java Basics - Anfänger-Themen 8
J JDK installieren JRE unter Windows7 64bit Java Basics - Anfänger-Themen 8
C Mehrere Zeilen unter ~.showMessageDialog Java Basics - Anfänger-Themen 12
F getProperty() unter 64bit Java Basics - Anfänger-Themen 2
J Erstellte .jar unter 32 bit funktioniert nicht bei 64 bit Java Basics - Anfänger-Themen 4
G jar unter MeeGo installieren Java Basics - Anfänger-Themen 3
VfL_Freak Applikation läuft nicht unter Windows7 "platform not supported" Java Basics - Anfänger-Themen 15
R Programm gibt keine Reaktion unter Eclipse auf Mac Java Basics - Anfänger-Themen 13
I Java Programm unter Linux ausführen Java Basics - Anfänger-Themen 2
J Java Tool unter Windows ausführen Java Basics - Anfänger-Themen 8
H archive vergleichbarer Paramter unter Tag Object mit Parameter codetype="application/java-vm" Java Basics - Anfänger-Themen 3
C Windows Java unter Unix Java Basics - Anfänger-Themen 2
M Importieren von "IO.class" unter Eclipse Java Basics - Anfänger-Themen 4
G Problem mit einem Programm unter Win7 Java Basics - Anfänger-Themen 2
M Problem mit relativen Pfad unter Linux Java Basics - Anfänger-Themen 5
J Classpath bestimmen, unter Windows 7 Java Basics - Anfänger-Themen 2
S Random zahlen mit unter und obergrenze Java Basics - Anfänger-Themen 3
L Lucene Classpath unter linux setzen Java Basics - Anfänger-Themen 8
M Icons etc. werden unter Linux nicht gefunden Java Basics - Anfänger-Themen 6
C setResizable(false) unter NetBeans Java Basics - Anfänger-Themen 3
M Java einrichten unter Windows 7 Java Basics - Anfänger-Themen 12
C Wav-Sound nur unter Window Java Basics - Anfänger-Themen 5
B Classpath setzen - UNTER MAC OS X Java Basics - Anfänger-Themen 2
A 2 Monitore unter Java Java Basics - Anfänger-Themen 2
Y BufferdImage schreiben, unter Vista gehts, unter Ubuntu nicht... Java Basics - Anfänger-Themen 9
U Speichern unter button programmieren Java Basics - Anfänger-Themen 12
T Einfache Textausgabe .java unter OS X Java Basics - Anfänger-Themen 13
K Terminal Befehl mit Java unter Mac ausführen Java Basics - Anfänger-Themen 18
R .jar läuft nicht unter Linux Java Basics - Anfänger-Themen 11
D Class not found fehler beim ausführen unter konsole : / Java Basics - Anfänger-Themen 2
B Java Datei unter Solaris kompilieren Java Basics - Anfänger-Themen 2
T Drucken von Listen bestehend aus Grafik und Text (unter swing) Java Basics - Anfänger-Themen 7
C Windows Look and Feel unter Linux Java Basics - Anfänger-Themen 10
K Export Eclipse-Project unter MAC OS X Java Basics - Anfänger-Themen 2
F jar Datei unter Vista 64 bit Java Basics - Anfänger-Themen 2
schroedi JAVA_HOME setzen unter Debian Java Basics - Anfänger-Themen 8
J Eine JAR unter Linux starten ... Java Basics - Anfänger-Themen 15
Q Wie öffne ich einen "Speichern unter" - Dialog? Java Basics - Anfänger-Themen 2
J Software problem unter VISTA Java Basics - Anfänger-Themen 3
M Was kann man unter implementieren so verstehen? Java Basics - Anfänger-Themen 11
M Was versteht man unter Java einen Package ? Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben