interface abstrakte klasse

Status
Nicht offen für weitere Antworten.

lerchenjack

Mitglied
Hallo

ich hab mir gerade den Unterschied zwischen interfaces und abstrakte Klassen angeschaut

kann mir bitte jeman den satz erklären:
eine klasse kann nur von einer einzigen abstracten klasse erben, jedoch unendlich viele Interfaces implementieren kann

heißt das vielleicht das ich mit abstrakten klassen keine vererbungshirarchie aufbauen kann. ( abstrakte klasse vererbt an abstrakte klasse usw. )
 

faetzminator

Gesperrter Benutzer
doch, aber du kannst nicht von mehreren abstrakten Klassen erben

der vorteil einer abstraken Klasse gegenüber Interfaces ist, dass nicht alle Methoden abstrakt sein müssen. Eine abstrakte Klasse kann bereits mehrere Methoden mit Body implementieren.
 

lerchenjack

Mitglied
eine klasse kann gleichzeitig von mehreren interfaces die methoden erben
und eine klasse kann nur von einer abstrakten klasse erben

lieg ich jetzt richtig?
 

Schandro

Top Contributor
Eine Klasse kann beliebig viele Interfaces implementieren und muss alle Methoden dieser Interfaces implementieren, außer es ist eine abstracte Klasse.

Eine Klasse kann von genau einer abstracten Klasse erben und muss dessen abstracten Methoden implementieren, außer sie selber ist auch abstract
 

faetzminator

Gesperrter Benutzer
@lerchenjack:
du hast deine Frage anders formuliert. Hier die Regel:
eine Klasse kann von 0-1 Klassen erben, ob abstrakt oder nicht
eine Klasse kann von 0-n Interfaces erben

aber wenn die zu vererbende Klasse bereits von einer Klasse erbt, kann deine natürlich ebenfalls von dieser erben. Dh. die oben genannten Regeln beziehen sich auf eine Hirarchiestufe bzw. Klasse
 

lerchenjack

Mitglied
also ist eine vererbungshirarchie von abstrakten klassen nicht möglich ?
nicht möglich:
abstrakte klasse -> abstrakte klasse -> abstrakte klasse -> klasse
 

Schandro

Top Contributor
Jede Klasse außer "Object" erbt von 1 Klasse. Wenn du nicht "extends xxx" explizit dazuschreibst, erbt sie automatisch von "Object"

abstrakte klasse -> abstrakte klasse -> abstrakte klasse -> klasse
Doch, ist möglich..
Und jede der abstracten Klassen kann neue Methoden und neue abstracte Methoden hinzufügen und kann auch ein paar der abstracten Methoden der Vorgängerklassen implementieren.
 

lerchenjack

Mitglied
kann mir bitte jemand ein codebeispiel angeben für

"von mehreren abstrakten Klassen erben"
ich versteh den Satz einfach nicht
 

lerchenjack

Mitglied
kann man den satz auch einfacher formulieren "eine klasse kann nur von einer einzigen abstracten klasse erben, jedoch unendlich viele Interfaces implementieren kann"
 

Marco13

Top Contributor
Code sagt manchmal mehr als 1000 Worte
Code:
class Foo implements FirstInterface, SecondInterface {} // Geht
class Foo extends FirstAbstractClass {} // Geht
class Bas extends Foo {} // Geht

class Foo extends FirstAbstractClass, SecondAbstractClass {} // Geht NICHT
 

Marco13

Top Contributor
Abgesehen davon, dass das ja das Beispiel ist, das NICHT geht: Nicht notwendigerweise. Sowas ist komplett legaler Code:
Code:
abstract class First {} // Abstrakt
class Second extends First {} // Nicht abstrakt
macht aber nur selten Sinn...
 

lerchenjack

Mitglied
nennt man so ne zeile nicht mehrfachvererbung ? dachte des geht in java gar net
class Foo implements FirstInterface, SecondInterface, ThirdInterface
 

Schandro

Top Contributor
kommt bei dem codebsp cl noch nen abstract rein?
abstract class Foo extends FirstAbstractClass, SecondAbstractClass {}
Wie gesagt, diese Zeile geht eh nicht da man nicht von 2 Klassen erben kann. Ansonsten: Es kann ein abstract davor stehen, muss es aber nicht. Jenachdem was man machen will.

was meint ihr mit 0-n interfaces
Man kann entweder kein Interface implementieren, oder eins, oder 2, oder 3, oder 4, ...,
 

Schandro

Top Contributor
nennt man so ne zeile nicht mehrfachvererbung ? dachte des geht in java gar net
class Foo implements FirstInterface, SecondInterface, ThirdInterface
Das ist keine Mehrfachvererbung. Das sind Interfaces, das hat nix mit vererbung zu tun. Man Implementiert sie nur.


abstract class First {} // Abstrakt
class Second extends First {} // Nicht abstrakt

macht aber nur selten Sinn...
:autsch: Warum sollte das nur selten Sinn machen? Das hier ist die einzige Form wo abstracte Klassen überhaupt Sinn MACHEN. (natürlich mit beliebig vielen abstracten Klassen in der Vererbungshierarchie davor)
 

Marco13

Top Contributor
Das Beispiel schien vielleicht abstrac..kter als es gemeint war ;) In der abstract class steht in diesem Fall ja keine Methode. I.a. macht man nur eine abstrakte Klasse, wenn man auch eine abstrakte Methode drin unterbringen will. Das Beispiel zielte nur darauf ab, dass das aber nicht notwendig ist, und man eine Klasse auch "einfach so" als abstract bezeichnen kann. Das hätte (spontan, erstmal nur) den Effekt, dass man sie nicht mehr instantiieren kann, und eine "leere" Vererbung drüberpacken muss, um dann die erbende Klasse instantiieren zu können...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
G Interface oder abstrakte Klasse Allgemeine Java-Themen 4
G Unterschied abstrakte Klasse und Interface? Allgemeine Java-Themen 3
P Abstrakte Klassen vs. Interface Allgemeine Java-Themen 4
Z Abstrakte Klassen /Interface Allgemeine Java-Themen 5
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
OnDemand Interface imlementieren Allgemeine Java-Themen 4
Buroto Interface Allgemeine Java-Themen 2
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
M Kann man Annotationen auf Klassen einschränken die ein Interface implementieren? Allgemeine Java-Themen 1
B JaxB und @XmlIDREF mit Interface Allgemeine Java-Themen 1
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
Kirby.exe Autocloseable Interface Allgemeine Java-Themen 2
T Abgeleitetes Interface public ohne Schlüsselwort "interface"? Allgemeine Java-Themen 3
S static in Interface und Klasse Allgemeine Java-Themen 2
S static methode im Interface Allgemeine Java-Themen 1
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
B Vererbung Interface und implementierende Klassen Allgemeine Java-Themen 8
A Anonyme Klassen - Interface Allgemeine Java-Themen 5
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
mrBrown Namensfindung Fluent-Interface Allgemeine Java-Themen 0
J Logik in Interface Allgemeine Java-Themen 2
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
B eigenes Consumer Interface Allgemeine Java-Themen 0
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
N GUI Interface, swing Allgemeine Java-Themen 7
Thallius Konzeptproblem User-Interface Allgemeine Java-Themen 5
T Interface vs abstract Allgemeine Java-Themen 2
S Klassen Abstract, Interface und ein Chat Tool Allgemeine Java-Themen 1
I Interface Interface / Klasse - wieso Abstract? Allgemeine Java-Themen 13
D generische Interface und konkrete Methode Allgemeine Java-Themen 3
C Klassen Problem mit Funktion einer Generischen Klasse die ein Interface implementiert Allgemeine Java-Themen 0
N Problem mit Generics und Interface Allgemeine Java-Themen 4
D Methode mit optionalen Parametern in Interface Allgemeine Java-Themen 3
T Interface mit generische Typen Allgemeine Java-Themen 5
M Interface einer Library implementieren Allgemeine Java-Themen 3
A Klassen ein Interface aufzwingen Allgemeine Java-Themen 4
Bananabert Interface Custom 'Event' mit Interface Allgemeine Java-Themen 10
J Interface Serializable Methodensignatur Allgemeine Java-Themen 2
J Interface Interface für Framework verwenden Allgemeine Java-Themen 4
F Interface IInterface oder Interface? Allgemeine Java-Themen 3
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
T Interface Probleme Allgemeine Java-Themen 8
M Queues und Queue Interface Allgemeine Java-Themen 3
I Mehrfaches Implementieren eines generischen Interface Allgemeine Java-Themen 9
W Java Native Interface und "mp3player" Allgemeine Java-Themen 3
M Über Liste verschiendene JComponents mit eigenem implementierten Interface ansprechen Allgemeine Java-Themen 7
P Eclipse Java Native Interface-Problem Allgemeine Java-Themen 8
pg1337 Interface-Frage Allgemeine Java-Themen 24
S Interface Welchen Interface Stil favorisiert ihr? (usability) Allgemeine Java-Themen 17
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
R Implementierung eines Interface durch 2 verschiedene Klassen Allgemeine Java-Themen 6
T OpenOffice Interface Elemente Ein/Ausblenden Allgemeine Java-Themen 5
K Interface Interface comparable machen Allgemeine Java-Themen 9
T Interface > Abstract > Class Allgemeine Java-Themen 11
N Trick für Compilerfehler bei fehlendem Interface Allgemeine Java-Themen 12
X Interface - Klasse einladen Allgemeine Java-Themen 6
G Interface -> InterfaceImplementierung Allgemeine Java-Themen 3
Ark Array durch Interface ersetzen Allgemeine Java-Themen 7
R Interface instanzieren Allgemeine Java-Themen 8
B Frage zu Interface und List Allgemeine Java-Themen 4
KrokoDiehl JNI: native im Interface Allgemeine Java-Themen 4
S normale vererbung als interface Allgemeine Java-Themen 2
E Beispiel für ein möglichst einfaches Interface Allgemeine Java-Themen 22
N Unterschied abstract interface und interface Allgemeine Java-Themen 4
S interface verbung problem Allgemeine Java-Themen 9
S problem programm mit interface: Allgemeine Java-Themen 3
R Vererbung mit Interface und Abstract Allgemeine Java-Themen 3
B Interface und von Thread ableiten Allgemeine Java-Themen 6
R Interface Serializable technische Begrenzung Allgemeine Java-Themen 2
T Interface-Referenz Allgemeine Java-Themen 2
S Interface Geschäftslokik & GUI Allgemeine Java-Themen 6
G Interface zwischen 2 Programmierern Allgemeine Java-Themen 10
C Schnittstellen(interface) Allgemeine Java-Themen 9
N List<? implements "Interface"> geht nicht Allgemeine Java-Themen 13
D javadoc interface + implementation + @overrides Allgemeine Java-Themen 16
T Parameter einer Klasse auf Interface prüfen Allgemeine Java-Themen 6
A feststellen, welche Klassen ein Interface implementieren Allgemeine Java-Themen 3
G class, interface, or enum exp? Allgemeine Java-Themen 2
S Interface Klasse überladen. Allgemeine Java-Themen 2
K Inneres Interface äußere Klasse Allgemeine Java-Themen 7
T Frage zu interface und "guter Programmierstil" Allgemeine Java-Themen 4
T Interface "on-the-fly" implementieren? Allgemeine Java-Themen 3
S Frage zu Interface Allgemeine Java-Themen 7
J Objektorientiert - Interface & Klassen Allgemeine Java-Themen 3
G Interface - Klassen implementieren das - Reflection ok? Allgemeine Java-Themen 4
T "Programming against the interface" sinnvoll? Allgemeine Java-Themen 18
G Interface mehrfach implementieren Allgemeine Java-Themen 5
@ zur Laufzeit Interface aus jar implementieren? Allgemeine Java-Themen 5
A Was ist der genau Sinn eines Interface? Allgemeine Java-Themen 13
E Oberbergriff für class und interface Allgemeine Java-Themen 20
D QuickSort, Interface Allgemeine Java-Themen 2
R Interface für Arithmethik? Allgemeine Java-Themen 3
MQue Interface implementieren Allgemeine Java-Themen 7
P Liste von Klassen die ein Interface implementieren speichern Allgemeine Java-Themen 12
L Interface Frage! Allgemeine Java-Themen 25
T Instanz einer Interface abgeleiteten Klasse erzeugen Allgemeine Java-Themen 3
F Ein interface und private Methoden? Allgemeine Java-Themen 13
G nichtabstrakte Funktion zu einer Interface hinzufügen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben