Sinn von abstract |
17.01.2015, 10:12 | Auf diesen Beitrag antworten » |
Erstsemestler | Sinn von abstract Meine Frage: Hey Leute, in Java gibt es doch das Schlüsselwort abstract. Dies bedeutet ja, dass von einer Klasse kein Objekt erzeugt werden kann. Wann ist es denn eigentlich sinnvoll von einer Klasse kein Objekt erzeugen zu wollen? Meine Ideen: Vielen Dank :-) |
|
|
17.01.2015, 10:38 | Auf diesen Beitrag antworten » |
eulerscheZahl | Wenn du mehrere Dinge mit dem selben Grundgerüst hast, die sich aber doch in der Ausführung unterscheiden. Beispiel: es soll auf eine Datenbank zugegriffen werden. Je nach Datenbank (SQL, Access, ...) kann die genaue Implementierung anders aussehen, aber es ist und bleibt eine Datenbank, in die man Daten schreiben kann und auch wieder auslesen. Angenommen, man tauscht jetzt die Datenbank durch eine andere aus, muss man dank der abstrakten Klasse nur eine andere Kindklasse verwenden, den restlichen Code kann man übernehmen. Bis dahin trifft das auch auf ein Interface zu. Der Unterschied: in der abstrakten Klasse kannst du manche Funktionen bereits implementieren (die, die sowieso immer gleich sind) und nur ein paar als abstract deklarieren. |
17.01.2015, 10:43 | Auf diesen Beitrag antworten » |
Erstsemestler | Abstract würde dann wahrscheinlich im Zusammenhang mit Interfaces stehen. Wenn ich die Definition von Interfaces richtig im Kopf habe, dann greifen diese, sobald von einer Klasse mehrfach geerbt werden soll? Hier wäre dann wahrscheinlich auch abstrac sinnvoll, um eine Unterscheidung hinzubekommen? |
17.01.2015, 10:48 | Auf diesen Beitrag antworten » |
eulerscheZahl | Ich verstehe nicht, worauf du hinauswillst. Mehrfachvererbung heißt, dass eine Klasse von mehreren erbt (nicht mehrere von einer). In Java ist das nicht möglich, in C++ schon. Hier brauchst du in Java Interfaces (abstrac class hilft nicht). |
Anzeige | |
|
|
17.01.2015, 11:10 | Auf diesen Beitrag antworten » |
Erstsemestler | Super, danke dir. Da habe ich mich bloß falsch ausgedrückt. Könntest du mir noch schnell mit den Interfaces in Java weiterhelfen? Stehen Interfaces im Zusammenhang mit dem Schlüsselwort super? (Sorry für die Fragen, aber das Skript ist echt ein Witz :-) |
17.01.2015, 11:23 | Auf diesen Beitrag antworten » |
eulerscheZahl | Mit super kommst du an die Elternklasse und kannst z.B. Methoden aufrufen, die du überschreibst/verdeckst. Wird beim Konstruktor gerne gemacht. Mit Interfaces hast das nichts zu tun. |
17.01.2015, 11:35 | Auf diesen Beitrag antworten » |
Erstsemestler | Okey :-) Und was haben dann die Interfaces für einen Sinn? |
17.01.2015, 11:57 | Auf diesen Beitrag antworten » |
eulerscheZahl | Zum einen: vielleicht will man ja nichts implementieren, sondern nur sagen, dass es die Funktion gibt. Dann verwendet man eine Klasse, die das Interface implementiert, statt von der abstrakten Klasse zu erben. Und in Java kann man nur von einer Klasse erben, aber mehrere Interfaces implementieren. Man hat also nicht immer eine Wahl. |
17.01.2015, 12:40 | Auf diesen Beitrag antworten » |
Erstsemestler | Okey, das klingt mal richtig kompliziert :-) Danke für die Antwort |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
Die Neuesten » |