Abstrakte Klassen

Status
Nicht offen für weitere Antworten.

Tenori

Mitglied
Guten Tag,
ich bin gerde dabei Java zu lernen mit dem Buch"Java als erste Programmiersprache - vom Einsteiger zum Profi".
Bin gerade in Kapitel 11 angekommen, und hier geht es um Vererbung, und es wurden gerade abstrakte Klassen vorgestellt.
Mir ist die Verwendung von abstrakten Klassen aber nicht wirklich klar?
Also es werden in der abstrakten Klassen Methoden ohne Methodenrumpf definiert, richtig? Auch Datenfelder?
Und die Methoden müssen in der ableitenden Klasse auch wieder vorhanden sein, sonst ist die Klasse auch als abstract zu definieren, oder?
Wenn man die Methoden in der ableitenden Klasse aber eh nochmal hinschreibt, wozu dann überhaupt die abstrakte Klasse?
Danke im Vorraus für die Hilfe,

MfG
 
G

Gastredner

Gast
Abstrakte Klassen kann man im Grunde mit Interfaces vergleichen, wobei abstrakte Klassen den Vorteil bieten, dass sie auch schon implementierte Methoden beinhalten können, die in der abgeleiteten Klasse dann nicht unbedingt überschrieben werden müssen. Ebenso können sie auch private Variablen deklarieren, was in einem Interface ebenfalls nicht möglich ist.
 

SvenK

Aktives Mitglied
Abstrakte Klassen sind ein Zwischending zwischen Interface und "normalen" Klassen.

In Interfaces dürfen nur die Methodensignaturen definiert werden, aber keine Implementierungen. Bei abstrakten Klassen kann man das mischen:

Methoden, die in allen Tochterklassen gleich sein sollen, sagen wir mal das Logging oder verschiedene Hilfsmethoden, können gleich in der abstrakten Klasse implementiert werden.
Spezifische Methoden, die bei den Tochterklassen unterschiedlich erledigt werden sollen, aber unbedingt vorhanden sein müssen, definiert man als abstrakt. Alle Klassen, die von der abtrakten Klasse erben und "normal" sein wollen (sprich instanzierbar), müssen diese dann, möglichst sinnvoll, überschreiben.
 

Tenori

Mitglied
Ok, es ist mir jetzt etwas klarer, nur: Was sind Inerfaces? Das wurde noch nicht geklärt im Buch.

MfG
 
G

Gastredner

Gast
Ach so...

Ein Interface ist einer abstrakten Klasse ähnlich. Allerdings ist es in Interfaces nicht möglich, implementierte Methoden hinzuzufügen - hier sind wirklich nur Methodenrümpfe erlaubt. Ebenso ist der private-Modifikator nicht verwendbar.
Wichtig ist dabei, dass von Interfaces - im Gegensatz zu den abstrakten Klassen - nicht geerbt wird, sodass man in ein und der selben Klasse eine Vielzahl von Interfaces einsetzen kann. Setzt man ein Interface ein, wird dieses wortwörtlich "implementiert":
Java:
public class xyz implements abc, def {
}
Hier für die beiden Interfaces "abc" und "def".
Die Collections setzen z. B. Interfaces ein. So ist es möglich, jede Art von Liste wie eine Instanz des Interfaces "List" zu benutzen, egal wie die Liste nun intern implementiert ist:
Java:
import java.util.List;

public class foo {
	
	/* Da alle Listen in Java das Interface List implementierten,
	 * kann es uns egal sein, welche Liste der Autor der Klasse 
	 * someClass intern verwendet hat - wir sprechen sie einfach
	 * als Instanz des Interfaces an und können dann mit dessen
	 * Methoden arbeiten. Egal, ob wir nun eine ArrayList, eine
	 * LinkedList oder sonstwas haben.
	 */
	public static void doSomething() {
		List list = someClass.getSomeList();
	}
}
 
Zuletzt bearbeitet von einem Moderator:

jule37

Aktives Mitglied
ein interface ist eine art klasse, die nur abstrakte operationen enthält um eine gemeinsame schnittstelle für verschiedene klassen darzustellen.

beispiel:
Java:
public interface Drawable {
    public void draw(Graphics g);
}

dieses interface besagt nun, dass alle klassen, die es implementieren, gezeichnet werden können (z.b. bilder), wobei der implementierenden klasse überlassen wird, wie sie die draw-operation umsetzt.

beispiel:
Java:
public class image implements Drawable {
    public void draw(Graphics g) {
        g.drawImage(....);
    }
}

vielleicht wartest du am besten noch, bis es in deinem buch drankommt, bis du dich intensiver damit beschäftigst. allgemein kann man aber sagen, das interfaces sehr wichtig sind und in komplexem code recht häufig vorkommen.

hoffe ich konnte dir bissel helfen ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
D Abstrakte Klassen Verständniss Frage Java Basics - Anfänger-Themen 4
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
B Abstrakte Klassen Java Basics - Anfänger-Themen 7
S Abstrakte Klassen Java Basics - Anfänger-Themen 2
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
G Abstrakte Klassen - theoretische Frage Java Basics - Anfänger-Themen 2
OnDemand Abstrakte Klassen Java Basics - Anfänger-Themen 4
T OOP Abstrakte Klassen und ihre Kinder: wie läuft das? Java Basics - Anfänger-Themen 3
M Abstrakte Klassen Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
M Interface und Abstrakte Klassen Java Basics - Anfänger-Themen 12
R Namenskonvention abstrakte Klassen Java Basics - Anfänger-Themen 6
C OOP Objektstruktur: abstrakte Klassen Java Basics - Anfänger-Themen 3
T OOP abstrakte klassen - methoden Java Basics - Anfänger-Themen 8
M Abstrakte Klassen Java Basics - Anfänger-Themen 21
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
C abstrakte Klassen mögen mich nicht... Java Basics - Anfänger-Themen 2
I Abstrakte Klassen Java Basics - Anfänger-Themen 8
D Zusammenfassung von Klassen (Vererbung? Abstrakte Klass? ...?) Java Basics - Anfänger-Themen 8
G Abstrakte Klassen und Methoden Java Basics - Anfänger-Themen 3
C Schnittstellen und Abstrakte Klassen Java Basics - Anfänger-Themen 3
I Abstrakte Klassen Java Basics - Anfänger-Themen 22
G Abstrakte Klassen ? Java Basics - Anfänger-Themen 9
nadoria abstrakte Klassen Java Basics - Anfänger-Themen 6
M Unterscheid Abstrakte Klassen/Interface Klassen? Java Basics - Anfänger-Themen 7
T abstrakte Klassen? Java Basics - Anfänger-Themen 2
M abstrakte klassen und interfaces Java Basics - Anfänger-Themen 2
M abstrakte klassen / Schnittstellen Java Basics - Anfänger-Themen 4
H abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 13
R Interfaces durch abstrakte Klassen ersetzbar? Java Basics - Anfänger-Themen 8
A Abstrakte Klassen und Interfaces Java Basics - Anfänger-Themen 11
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
G Java Abstrakte Methoden Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
L Abstrakte Typen und Schnittstellen Java Basics - Anfänger-Themen 19
S Abstrakte Methode nutzen Java Basics - Anfänger-Themen 9
J abstrakte Methode in Klasse mit Rückgabetyp der abgeleiteten Klasse Java Basics - Anfänger-Themen 5
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
T Übungsaufgabe abstrakte Klasse Java Basics - Anfänger-Themen 21
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Datentypen Abstrakte Datentypen Java Basics - Anfänger-Themen 0
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
K Abstrakte Klasse: vererbte Klasse; instance of? Java Basics - Anfänger-Themen 26
A Abstrakte Datentypen - Methode delete Java Basics - Anfänger-Themen 6
N Vererbung Abstrakte Klasse stateful Java Basics - Anfänger-Themen 3
D Methoden Abstrakte Methoden Java Basics - Anfänger-Themen 3
W Abstrakte Klasse mit Variable? Java Basics - Anfänger-Themen 2
C Abstrakte und virtuelle Methoden in Java Java Basics - Anfänger-Themen 4
E verdeckte abstrakte Methode sinnvoll? Java Basics - Anfänger-Themen 7
A Vererbung Abstrakte Klasse mit Methode die Objekte der Subklassen benutzt? Java Basics - Anfänger-Themen 7
W Abstrakte und konkrete Klasse Java Basics - Anfänger-Themen 4
F Abstrakte Klasse doch zum "Teil" instanzieren? Java Basics - Anfänger-Themen 4
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
M Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
N Datentypen abstrakte Klasse wird instanziert Java Basics - Anfänger-Themen 3
D Methoden abstrakte Methoden und Rückgabewerte Java Basics - Anfänger-Themen 2
B Abstrakte Methode vs. Interface Java Basics - Anfänger-Themen 2
propra Interface - abstrakte Klasse Java Basics - Anfänger-Themen 18
N Abstrakte Klasse Java Basics - Anfänger-Themen 28
L Über abstrakte Klasse auf eine Klasse zugreifen? Java Basics - Anfänger-Themen 6
V Vererbung Abstrakte Methode Java Basics - Anfänger-Themen 3
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
StupidAttack Abstrakte Methoden in nicht-abstrakter Methode in abstrakter Klasse Java Basics - Anfänger-Themen 6
T Abstrakte Klasse Java Basics - Anfänger-Themen 3
S Abstrakte Klasse Java Basics - Anfänger-Themen 5
T OO, Konstruktor, abstrakte Methoden Java Basics - Anfänger-Themen 13
K Abstrakte Klasse vs. Interface Java Basics - Anfänger-Themen 21
K Abstrakte Klasse bilden? Java Basics - Anfänger-Themen 11
S Abstrakte Klasse, festlegen, dass Methode verändert werden muss. Java Basics - Anfänger-Themen 4
H Warum Java? | Abstrakte Klasse = Modul? Java Basics - Anfänger-Themen 20
J abstrakte klasse und methode super Java Basics - Anfänger-Themen 2
H Eine Abstrakte Klasse muss. Java Basics - Anfänger-Themen 7
G Abstrakte Klasse "Point" Java Basics - Anfänger-Themen 2
G Abstrakte Methode in gleicher Klasse aufrufen Java Basics - Anfänger-Themen 5
M abstrakte Klasse Java Basics - Anfänger-Themen 3
F Abstrakte Klasse: Konstruktor vs init() Java Basics - Anfänger-Themen 13
G Abstrakte Klasse (was passiert hier) Java Basics - Anfänger-Themen 3
G Interface oder Abstrakte Klasse? Java Basics - Anfänger-Themen 3
G konkretes beispiel: interface hier besser als abstrakte kl. Java Basics - Anfänger-Themen 4
Acha Unterschied Interface - abstrakte Klasse Java Basics - Anfänger-Themen 4
B OOP: abstrakte klasse implementiert interface Java Basics - Anfänger-Themen 3
L abstrakte Methode nicht implementiert! Java Basics - Anfänger-Themen 5
D Abstrakte Klasse Graphics Java Basics - Anfänger-Themen 3
A Abstrakte Klasse Java Basics - Anfänger-Themen 3
G abstrakte klasse Java Basics - Anfänger-Themen 6
F Abstrakte Klasse Baum Java Basics - Anfänger-Themen 6
A Eine abstrakte Methode static machen? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben