Announcement

Collapse
No announcement yet.

Schnittstellen / Interfaces

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Schnittstellen / Interfaces

    In einem Java-Anfängerbuch, das ich mir aus dem Internet als e-Book heruntergeladen habe, sind Schnittstellen bzw. Interfaces als Ersatz für die Mehrfachvererbung definiert.<p>Darin sehe ich nur keinen richtigen Nutzen:<br>Wenn ich den Text im Buch richtig verstanden habe, kann man in Schnittstellen nur abstrakte Methoden definieren, was bedeutet, dass die ganzen Methoden in dem Quelltext des Programms geschrieben werden müssen. Da dann aber sowieso alle Methoden im Quelltext des Programms stehen, was bringt dann noch die Schnittstelle???<p>thx schonmal, Sebastian

  • #2
    Das Problem der Mehrfachvererbung war, dass die erbende Klasse, wenn sie Methoden mehrfach erbt, die den gleichen Namen haben(und gleiche Parameter...) nicht mehr entscheiden kann, welche Methode wirklich ausgeführt werden soll.<BR>
    <BR>
    Vorteile von Interfaces allgemein, sind zum Beispiel, dass sich mehrere Programmierer, wenn sie am selben Projekt arbeiten, auf klare Schnittstellen einigen können und damit kompatibel zueinander bleiben.<BR>
    Besonders deutlich wird dieser Vorteil erst, wenn sich die Programmierer nicht kennen.
    So kann ich zum Beispiel Tastatur- und Maus- Events empfangen, indem ich mich als Listener registriere, und durch die Aufnahme der jeweiligen Interfaces, stelle ich sicher, dass die richtigen Methoden zur Verarbeitung implementiert habe.<BR><BR>
    mfg Eisvoge

    Comment


    • #3
      Eine weitere schöne Möglichkeit von Interfeaces ist die Aufhebung der gegenseitigen Abhängigkeit von Modulen. Man kann Interfaces definieren und die eigenen Klassen nur mit den Interfaces arbeiten lassen. Die konkrete Implementierung wird dann z.B. durch Class-Loading per Name im laufenden Betrieb durchgeführt. So ist es z.B. bei JDBC mit den Treibern.<br>
      Du kannst sozusagen mit Klassen arbeiten, die Du zur Zeit der Deiner Implementierung noch gar nicht kennst. Das ist insbesondere bei Framework-Entwicklungen unverzichtbar

      Comment


      • #4
        Ah ja, stimmt bei RMI(=remote method
        invocation) war das auch so

        Comment


        • #5
          Danke. Das klingt einleuchtend.<p>Ciau, Sebastian Meßme

          Comment

          Working...
          X