tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1449
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Code46 Code46 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    184
    Hallo leute wollte mal fragen was der unterschied zwischen extend und implement ist.Ich habe dies nicht richtig verstanden?

    Wuerde mich sehr freuen wenn ihr mir dies beantworten koenntet.

    Danke
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    das sollte Deine Frage beantworten:
    http://www.java-forum.org/java-basic...implement.html

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    Code46 Code46 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    184
    Also wenn ich das richtig verstanden habe implement bedeutet das die subclass die methoden des superclasses vererbt. Jedoch exend dies nicht vererben muss. Richtig?
     

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    Zitat Zitat von Code46 Beitrag anzeigen
    Also wenn ich das richtig verstanden habe implement bedeutet das die subclass die methoden des superclasses vererbt. Jedoch exend dies nicht vererben muss. Richtig?
    naja, ich glaube nicht so ganz (wenn ich Deine Bemerkung richtig verstehe ...)

    Vlt. nochmal in anderen Worten:

    extends
    Die abgeleitete Klasse erbt alle Elemente der Basisklasse und darf auf alle Elemente zugreifen (soweit in der Basisklasse erlaubt).
    Auch Nutzer der abgeleiteten Klasse können dies !

    implements
    Hiermit werden sog. Schnittstellen vererbt, die Du Dir als abstrakte Klasse vorstellen musst, d. h. sie enthalten nur abstrakte public-Methoden ()und ggf. Konstanten. In der erbenden Klasse müssen alle Elemente der Schnittstelle implementiert werden
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    interface Test
    {
        Objekt myTest();
    } // Test
     
    // ......
     
    public class TestKlasse
    implements Test
    {
    .....
    // hier muss "myTest()"  implementiert werden !!
    .....    
    } // Testklasse

    Besser ? ? ?

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  5. #5
    Code46 Code46 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    184
    Extend habe ich verstande, aber implement nicht ganz.Du sagtest das es Schnittstellen vererbt,welche Schnittstellen****
    Kann implement auch private methoden enthalten?
     

  6. #6
    MasterOP22 MasterOP22 ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    21
    Hallo,

    vielleicht sollte man dir implements am besten an einem Beispiel verdeutlichen.

    Nehmen wir ma an, du hast eine Anwendung die eine Datenbank verwenden soll. Aber du möchtest dich nicht auf Dauer auf eine festlegen, sondern möchtest den Zugriff auf die Datenbank aus deinem Quellcode so leicht wie möglich austauschen.
    Durch solche Probleme entsteht das Wort Schnittstelle, die wenn man es mal sehr abstrakt betrachtet ein Tor bzw. eine Hülle vor deinen ausimplementierten Klasse darstellt.

    Für dieses Problem sähe sowas wie folgt aus. Du hast zum einen eine Klasse, welche den Zugriff auf eine MySQL Datenbank durchführt, nennen wir sie MySqlDelegate und du hast eine Klasse die dasgleiche nur für eine Datenbank von Oracle tut z.B. OracleDelegate. So und du hast eine main-Klasse die jetzt gerne Daten speichern möchte. Wenn du jetzt direkt den mysqldelegate oder den OracleDelegate aufrufst, hast du Datenbank und Anwendung fest mtieinander verdrahtet -> d.h. eine späterer Austausch ist schon recht umständlich.

    Also packen wir eine Hülle davor, namens DBDelegate. Dieses Interface wird über implements in die beiden Delegates(Mysql, Oracle) eingefügt. Damit ist klar, dass du über das Tor mit diesen Klassen reden kannst aus deiner Anwendung. So nun rufst du aus deiner Anwendung nur noch das DBDelegate auf. Dies hat zur Folge, dass die Anwendung von der Datenbankimplementierung getrennt ist. Deswegen macht es keinen Sinn in das DBDelegate mit private Methoden auszustatten, weil du erstellst die Schnittstelle ja um der Anwendung ne Möglichkeit zu geben mit den datenbanken zu kommunizieren.

    Jetzt fvragst du dich wahrscheinlich, woher weiß denn nun der DBDelegate an welche der Datenbanken die Aufrufe weiterzugeben sind. Deswegen erstellst du eine weitere Klasse z.B. DBFactory. Diese enthält folgende Methode

    public DBDelegate getDB(){
    return new MySqlDelegate();
    }

    aus der Anwendung kannste jetzt sagen

    DBDelegate db = DBFactory.getDB();
    db.speicher();

    Das DBDelegate muss dann natürlich zwingend folgende Methode haben
    public interface DBDelegate{

    public void speicher();
    }

    Und da du das DBDelegate per implements in der MysqlDelegate hast musst du dort die speicher() - Methode implementieren

    public class MySqlDelegate{

    public void speicher(){

    //Code um Daten in einer MySql anzulegen.
    }

    Jetzt erkennste vllt. langsam den Vorteil. Wenn du jetzt lieber die Oracle datenbank benutzen willst musst du in DBFactory statt der MySqlDelegate das OracleDelegate zurückgeben und fertig. In der Anwendung bleibt alles beim alten, weil er dort ja nur mit der Schnittstelle redet.

    }



    Vielleicht hilft dir das ein bissel!?
    Geändert von MasterOP22 (12.10.10 um 15:07 Uhr)
     

  7. #7
    Code46 Code46 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    184
    PERFEKT erklärt dank dir du.
     

Ähnliche Themen

  1. Unterschied zwischen CMS und ERP
    Von chuvak im Forum Content Management Systeme (CMS)
    Antworten: 2
    Letzter Beitrag: 21.10.10, 10:57
  2. unterschied zwischen 3DS und VIZ
    Von Jan-Frederik Stieler im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 11.06.07, 09:35
  3. unterschied zwischen gz-mg-30 und gz-mg-33 ?
    Von alt_gr im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 0
    Letzter Beitrag: 02.12.05, 10:32
  4. Unterschied zwischen ASP und ASP.NET ?
    Von Andre_d im Forum ASP
    Antworten: 1
    Letzter Beitrag: 18.10.02, 14:54
  5. Unterschied zwischen CL 2 und 2.5 RAM
    Von -realnubb- im Forum Hardware
    Antworten: 4
    Letzter Beitrag: 11.04.02, 16:53