Unterscheid Abstrakte Klassen/Interface Klassen?

Status
Nicht offen für weitere Antworten.
M

Messer-Jockel

Gast
Kann mir jemand in zwei, drei Sätzen kurz erläutern worin der Unterscheid zwischen abstrakten Klassen und interface Klassen besteht? Die bieten doch BEIDE "körperlose" Methoden an. Ok, abstrakte Klassen bieten Variablen und Interfaces bieten Konstanten (FINAL) statt Variablen an. Aber ist das der gesamte Unterscheid? Wann benutzt wann was genau? Besten Dank!!! :roll:
 

Leroy42

Top Contributor
Abstrakte Klassen nutzen, wenn eine Hierarchie dargestellt wird.
Interfaces nutzen wenn eine (Klassen-)Hierarchieübegreifende Eigenschaftsmenge beschrieben werden soll.

Uuupps: Das waren ja nur 2 Sätze. :oops:
 
G

Guest

Gast
Code:
Hierarchieübegreifende Eigenschaftsmenge
Was verstehst du darunter genau?
 

Eldar

Aktives Mitglied
abstrakte Klassen werden nicht "implementiert" (implements) sondern "erweitert" (extends)... du kannst nur eine abstrakte Klasse erweitern (keine Mehrfachvererbung).. aber jede Menge Interfaces.
Ein Interface hat nur die Methodenköpfe.
Eine abstrakte Klasse kann zusätzlich Methodenrümpfe enthalten.
Beiden gemeinsam ist die Tatsache, das davon abgeleitete Klassen (oder die Klassen weiterer Ableitungen) zu jedem angegebenen Methodenkopf auch einen Methodenrumpf anbieten müssen.
 
G

Guest

Gast
Hallo,
wann sollte man abstrakte Klassen, wann interfaces und wann ganz normal Klassen als "Oberklassen" verwenden? Gibts da irgend eine Regel?
 
S

SlaterB

Gast
wann kommst du von A nach B zu Fuss, schwimmend oder über eine Brücke?
-> wenn es einen zu Fuss-Weg gibt, einen Teich dazwischen oder ein Schlucht mit Brücke darüber

Programmierenscheidungen hängen nicht von Regeln ab,
du machst das, was in der jeweiligen Situation BENÖTIGT wird..
 
G

Gast

Gast
Ich würde mal sagen, dass es dafür keine pauschale Regel gibt, mit der man alles erschlagen kann. Das Buch von Joshua Bloch(Java guru und Mitentwickler selbiger Programmiersprache) Effective Java, gibt hier einen guten Überblick was wann verwendet werden sollte.

Es kommt hier nicht nur darauf an was man Programmieren möchte, sondern wie.
Man kann einen Sachverhalt mit Interfaces, Superklassen oder Abstrakten Klassen darstellen.

Interfaces geben "nur" an welche Methoden eine Klasse enthält. Also welche Schnittstellen zur Aussenwelt ein Programm mindestens enthält.
Eine Klasse kann mehrere Interfaces implementieren.
z.B. Auto implements KannFahren, Boot implements KannSchwimmen, ==> Amphibienfahrzeug implements KannFahren, KannSchwimmen

Abstrakte Klassen sollte man verwenden wenn man sicherstellen möchte, das eine Methode der Subklasse auch tatsächlich implementiert wird. Wenn ich z.B eine Normale Klasse als Oberklasse habe und nun davon in mehreren verschiedenen Klassen erbe und dort jeweils die gleichen Methoden überschreibe und zudem vllt. noch die eigentliche Oberklasse nie wirklich benutze. So habe ich zumindest mal einen Kandidaten für die Abstrakte Klasse und eine abstrakte Methode.

Normale Klassen als "Oberklassen" werden oftmals "schlecht" verwendet (Gehörte selbst dazu). Eine Klasse als Superklasse, sollte nur die wirklich Notwendigen öffentlichen Methoden und Variablen haben, die es wirklich brauch. Wenn man nun davon erbt, stellt man oftmals fest, das man irgendetwas aus der Suberklasse braucht und nicht darauf zugreifen kann. Nun sollte man aber nicht die Superklasse ändern sondern die Subklasse darauf anpassen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Methoden Unterscheid zwischen public und ohne Java Basics - Anfänger-Themen 9
N Was ist der unterscheid zwischen Listen und Mengen Java Basics - Anfänger-Themen 5
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
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 Abstrakte Klassen Java Basics - Anfänger-Themen 11
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
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
T Übungsaufgabe abstrakte Klasse Java Basics - Anfänger-Themen 21
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
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 Abstrakte Klassen Verständniss Frage Java Basics - Anfänger-Themen 4
D Methoden Abstrakte Methoden Java Basics - Anfänger-Themen 3
W Abstrakte Klasse mit Variable? Java Basics - Anfänger-Themen 2
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
B Abstrakte Klassen Java Basics - Anfänger-Themen 7
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
S Abstrakte Klassen Java Basics - Anfänger-Themen 2
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
F Abstrakte Klasse doch zum "Teil" instanzieren? Java Basics - Anfänger-Themen 4
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
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 Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
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
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
R Namenskonvention abstrakte Klassen Java Basics - Anfänger-Themen 6
C OOP Objektstruktur: abstrakte Klassen Java Basics - Anfänger-Themen 3
L Über abstrakte Klasse auf eine Klasse zugreifen? Java Basics - Anfänger-Themen 6
V Vererbung Abstrakte Methode 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
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
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
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 Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
T OO, Konstruktor, abstrakte Methoden Java Basics - Anfänger-Themen 13
K Abstrakte Klasse vs. Interface Java Basics - Anfänger-Themen 21
T Abstrakte Klassen Java Basics - Anfänger-Themen 6
C abstrakte Klassen mögen mich nicht... Java Basics - Anfänger-Themen 2
I Abstrakte Klassen Java Basics - Anfänger-Themen 8
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
D Zusammenfassung von Klassen (Vererbung? Abstrakte Klass? ...?) Java Basics - Anfänger-Themen 8
H Warum Java? | Abstrakte Klasse = Modul? Java Basics - Anfänger-Themen 20
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
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 Klassen ? Java Basics - Anfänger-Themen 9
G Abstrakte Methode in gleicher Klasse aufrufen Java Basics - Anfänger-Themen 5
M abstrakte Klasse Java Basics - Anfänger-Themen 3
nadoria abstrakte Klassen Java Basics - Anfänger-Themen 6
F Abstrakte Klasse: Konstruktor vs init() Java Basics - Anfänger-Themen 13
G Abstrakte Klasse (was passiert hier) Java Basics - Anfänger-Themen 3
T abstrakte Klassen? Java Basics - Anfänger-Themen 2
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
M abstrakte klassen und interfaces Java Basics - Anfänger-Themen 2
B OOP: abstrakte klasse implementiert interface Java Basics - Anfänger-Themen 3
L abstrakte Methode nicht implementiert! Java Basics - Anfänger-Themen 5
M abstrakte klassen / Schnittstellen Java Basics - Anfänger-Themen 4
H abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 13
D Abstrakte Klasse Graphics Java Basics - Anfänger-Themen 3
R Interfaces durch abstrakte Klassen ersetzbar? Java Basics - Anfänger-Themen 8
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

Ähnliche Java Themen

Neue Themen


Oben