Zum Inhalt springen

Frage zu Schnittstellen


hyperion

Empfohlene Beiträge

Hallo,

in Java wird ja nur Einfachvererbung unterstützt. Um aber auch die Möglichkeit zu haben von mehreren Klassen etwas zu erben hat man Schnittstellen eingeführt.

Wenn ich in meiner Klasse nun über "implements" eine Schnittstelle implementiere muss ich ja alle in der Schnittstelle enthaltenen Methoden in meiner Klasse einbauen. Gut für die Verwendung von Schnittstellen reicht denke ich das Wissen aber zur Erstellung eigener Schnittstellen nicht.

Ich habe gelesen, dass eine Schnittstellenklasse nur aus leeren Methoden besteht. Ich frage mich dann aber woher die Funktionalität der Methoden der Schnittstelle kommt. Die Schnittstelle müsste die Funktionalität irgendwo anders her erben, andererseits würde die Schnittstelle ja wieder durch die leeren Mehtoden die geerbten Methoden überschreiben.

mfg hyperion

Link zu diesem Kommentar
Auf anderen Seiten teilen

Java ist auch eine Insel - SChnittstellen

PS: Die Funktionalität der Methoden bestimmst du in den Klassen, welche das Interface implementieren. Erstellst du dir beispielsweise eine Schnittstelle "Fahrzeug" mit der leeren Methode "fortbewegen". In den Klassen schreibst du dann, was in der Methode passieren soll (beispielsweise wird in der Klasse "Auto" innerhalb der Methode das Fahren beschrieben, in der Klasse "Flugzeug" wiederrum das Fliegen).

Sieh die Interfaces ein bißchen nur als Erinnerungsfunktion an, die dir sagt, dass die Klasse, an der du arbeitest, noch die vom Interface bereitgestellte Methode implementieren muss.

Bearbeitet von LadyPreis
Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber das kann doch nicht sein, dass eine Schnittstelle bloß eine Erinnerungsfunktion hat und mich dazu zwingt die Mehtoden einzubauen. Demnach wäre es ja möglich z.B eine actionPerformed() Methode einzubauen ohne ActionListener zu implementieren. Ich bezweifle, dass das funktioniert.

mfg hyperion

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine Schnittstelle ist mehr als eine Erinnerungsfunktion, sie ist ein Vertrag. Wenn Du ein Interface implementierst, dann verpflichtest Du Dich, die dort enthaltenen Methoden zu implementieren. Das ist der Vertrag.

Du kannst jederzeit eine actionPerformed Methode bereitstellen, ohne ein Interface zu implementieren. Aber keiner wird von Dir wissen, dass Du ein ActionListener bist, und deshalb macht das keinen Sinn.

Überleg mal von der Seite des Verwenders. Du willst, dass auf einen Button Klick etwas passiert. Es ist Dir völlig egal, wie die Klasse heißt, was sie sonst noch so macht, sie soll nur eine actionPerformed-Methode haben. Deshalb brauchst Du einen ActionListener. Jeder, der sich bereit erklärt, diese Schnittstelle zu implementieren, kann prinzipiell von Dir verwendet werden.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Vorteil ist, dass wenn du z.B. in einer Funktion nur Schnittstellenfunktionen abrufst, dass du dann den Parameter als Schnittstellen-Objekt deklarierst. Dann brauchst du z.B. nicht die Klasse des Objektes zu kennen, sondern nur die Schnittstelle.

Das einfachste Beispiel ist denk ich mal, wenn du eine Classe vom JFrame ableitest und gleichzeitig noch die Schnittstelle für die ActionPerforms implementierst.

Ein anderes Beispiel ist z.B. wenn du generische Listen verwendest, da es in Java keine Mehrfachverbung gibt, kannst du so Objekte einer Klasse (,welche das Interface implementieren,) speichern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...