Anzeige:
Ergebnis 1 bis 4 von 4

Thema: der Nutzen von Interfacen in Java...

  1. #1
    Registrierter Benutzer
    Registriert seit
    18.06.2002
    Beiträge
    20

    der Nutzen von Interfacen in Java...

    Hallo,

    ich arbeite mich gerade etwas in das Thema Java Programmierung rein. Habe dazu auch das ein oder andere Buch. Nun bin ich auf ein Kapitel gestoßen, welches sich um Interface dreht. Leider werde ich weder aus diesem Buch noch aus diversen Online Doku's schlau, wofür nun Interfaces zum Beispiel verwendet werden können.

    Im Grunde handelt es sich bei einem Interface doch um eine 'Klasse' welche lediglich aus Methoden-Rümpfen und Variablen besteht richtig?

    Wozu dann das ganze.

    Viele Grüße
    Alexander

  2. #2
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Ein "Interface" hat keine Attribute (Variablen).

    Ein Interface sagt nur aus welche Methoden eine Klasse implementieren MUSS.

    Code:
    interface Tier {
        public fressen();
        public fortpflanzen();
    };
    
    class Hund implements Tier {
        public fressen() {
            // fressen
        };
    
        public fortpflanzen() {
           // f*****
        }
    
        public bellen()
            // wau
        }
    };
    Nicht jedes Tier kann bellen. Das tun nur Hunde. Aber alle Tiere fressen und pflanzen sich fort.

    Du kannst also "gemeinsame" Methoden von Klassen nicht nur in "Oberklassen" zusammenfassen, sondern auch in Interfaces. Dabei stellt das Konstrukt "Interface" sicher, dass alle Klassen, die dieses Interface implementieren, auch wirklich diese bereitgestellten Methoden haben.

    So kannst du beispielsweise ein Tier gegen ein anderes austauschen (Hund weg, Katze rein). Das neue Tier kann aber weiterhin fressen und f*****. Und da du ja in dieser Situation von Tieren sprichst sind dir "Spezialfähigkeiten" egal (bellen und miauen).
    Geändert von Boron (28-06-2005 um 14:51 Uhr)
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  3. #3
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    1. ein Interface garantiert, dass du keine Methode zu implementieren vergisst.
    2. Wenn du in unterschiedlichen Klassen ein Interface implementierst, kannst du alle Objekte dieser Klassen zu Interface casten und die Methoden des Interfaces nutzen, ohne weitere Details über die Klasse des jeweiligen Objektes zu haben.
    3. man umgeht damit manchmal das Problem der Mehrfachvererbung
    Geändert von mwanaheri (28-06-2005 um 16:41 Uhr)
    Das Ziel ist das Ziel.

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von BuCkA
    Im Grunde handelt es sich bei einem Interface doch um eine 'Klasse' welche lediglich aus Methoden-Rümpfen und Variablen besteht richtig?
    Wie Boron schon gschrieben hat, gibt es in Interfaces keine Variablen.
    Es gibt auch keine Methodenrümpfe, nur deren Deklaration, also nur die Signatur.

    Eines meiner Lieblingsbeispiel zu dem Konzept sind Flächen von Körpern.

    Ein Körper wäre ein Objekt, die Flächenformen seine Interfaces.
    zB eine Kugel ist aus jeder Seite betrachtet ein Kreis, ein geradestehender Würfel ein Quadrat, eine Pyramide je nach Richtung ein Quadrat oder ein Dreieck, ein Kegel ein Dreieck oder ein Kreis.

    Wenn du jetzt eine Platte mit Löchern hast (Anforderungen an Objekte) dann reicht dir die Kenntnis des Interfaces um zu wissen ob der Körper durchpasst.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •