ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1449
1449
EMPFEHLEN
-
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
-
12.10.10 12:27 #2
Moin,
das sollte Deine Frage beantworten:
http://www.java-forum.org/java-basic...implement.html
Gruß
KlausEs 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 !!
-
Also wenn ich das richtig verstanden habe implement bedeutet das die subclass die methoden des superclasses vererbt. Jedoch exend dies nicht vererben muss. Richtig?
-
12.10.10 12:54 #4
Moin,
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ß
KlausEs 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 !!
-
Extend habe ich verstande, aber implement nicht ganz.Du sagtest das es Schnittstellen vererbt,welche Schnittstellen****
Kann implement auch private methoden enthalten?
-
12.10.10 15:00 #6
- 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)
-
PERFEKT erklärt dank dir du.
Ähnliche Themen
-
Unterschied zwischen CMS und ERP
Von chuvak im Forum Content Management Systeme (CMS)Antworten: 2Letzter Beitrag: 21.10.10, 10:57 -
unterschied zwischen 3DS und VIZ
Von Jan-Frederik Stieler im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 11.06.07, 09:35 -
unterschied zwischen gz-mg-30 und gz-mg-33 ?
Von alt_gr im Forum Videoschnitt, Videotechnik & -produktionAntworten: 0Letzter Beitrag: 02.12.05, 10:32 -
Unterschied zwischen ASP und ASP.NET ?
Von Andre_d im Forum ASPAntworten: 1Letzter Beitrag: 18.10.02, 14:54 -
Unterschied zwischen CL 2 und 2.5 RAM
Von -realnubb- im Forum HardwareAntworten: 4Letzter Beitrag: 11.04.02, 16:53





Zitieren

Login





