Umgang mit Vererbung verstehen

ocsme

Top Contributor
Guten Tag,

ich hab wiedermal ein "RIEßEN" Problem :(
Leider verstehe ich den Unterschied zwischen Interface und Ableitung nicht so ganz.
Hier mal kurz ein Text zu "Ist-ein" vs. "enthält-ein":
Manchmal fällt es nicht leicht, die Beziehung zwischen zwei Klassen richtig einzuordnen. In diesen Fällen hilft die Überlegung weiter, welche der beiden folgenden Aussgaen für zwei gegebene Klassen A und B zutrifft:

A ist ein B => A ist von B abgeleitet
A enthält ein B => A definiert ein Datenelement vom Typ B

Geht es hier nur um die Ableitung einer Klasse über extends also Konkret um "Normale" Klassen und ABCs die man ableiten kann?

Wann benötige ich denn dann ein Interface?
Wir haben eine Aufgabe zu UML dort sind Transportbehälter gegeben wie Rücksäcke, Kühlboxen, Koffer, Container etc. die Aufgabe kann ich gerne Posten wenn gewünscht.
Das bedeutet das all diese Säcke :D abgeleitet sind von der Klasse Transportbehälter.
Nun steht dort das sie von Menschen getragen werden können und manche von Ihnen auch Kinder gerecht sind. Was ist nun Mensch für eine Klasse? Soll Mensch etwa ein "Vertrag" sein also das Interface und fuerKinder ein Boolean?

Das Thema lässt mich noch Grau werden :(

LG
 

httpdigest

Top Contributor
Du meinst, du hast ein RIESEN Problem und kein "RIEßEN" Problem. Bei letzterem spräche man das 'S/ß' scharf aus wie in "reißen" bzw. "reissen" ("Eine Packung aufreissen").

In Java müsstest du Interfaces verwenden, wenn ein Typ `C` mehrere Dinge gleichzeitig sein kann (also du `C` von mehreren Klassen `A` und `B` gleichzeitig ableiten müsstest) wenn dies sich nicht über eine lineare Vererbungshierarchie C -> B -> A abbilden lässt, da es in Java keine Mehrfachvererbung von Klassen gibt.

Interfaces dienen ja, wie der Name schon sagt, um eine "Schnittstelle" zu etwas in Form der Operationen/Methoden, die man darauf aufrufen kann, zu definieren. Eine Klasse beschreibt dabei schon mehr oder weniger eine konkrete Implementierung mit Zustand (Instanzvariablen), den man in einem Interface nicht findet.

Eine Klasse kann dann, wenn der Zweck das erfordert, viele Interfaces implementieren. Schau dir z.B. mal die Klasse java.util.ArrayList an. Diese implementiert gleich vier Schnittstellen, weil sie jede Operation jeder dieser Schnittstellen implementiert/unterstützt, somit also durch jede dieser Schnittstellen gesehen werden kann. Sie ist sowohl eine Liste, als auch ein RandomAccess (was eigentlich nur ein sogenanntes "Marker-Interface" ist - also ohne Operationen - um auszudrücken, dass beliebige get(int) Aufrufe konstant lange dauern), sie ist ein Cloneable und sie ist ein Serializable.
 

Javinner

Top Contributor

O2016

Bekanntes Mitglied
Interface / Ableitung
Ein Interface verwendet man wenn man beispiel zwei Klassen hat die nichts miteinander zu tun haben.
Eine Klasse Mensch und eine Klasse Reifen, beide benötigen Luft aber eine Oberklasse Luft zu machen, von der beide ableiten macht wenig Sinn. Dann macht man lieber ein Interface Luft und deklariert dort die Methoden die die Klasse Mensch und Reifen haben sollen.
Anschließend können die Klassen jeweils die Methoden überschreiben.

Bei der Klasse Mensch und Tier eine Oberklasse Lebewesen zu machen macht mehr Sinn und da kann man dann die Methoden für die Luft einpflegen

Korrigiert mich wenn es anders ist, bin auch erst am Lernen ;)
 

ocsme

Top Contributor
Das Thema habe ich heute nicht mehr weiter angeschaut. Morgen geht es weiter!
Ich werde morgen dann das UML Diagramm zu dieser Aufgabe machen und hier Posten vielleicht klappt es ja :D

Hier mal die Aufgabe:
• Ein Rucksack ist ein Transportbehälter, der von Menschen getragen werden kann und
evtl. kindgerecht ist. Jeder Rucksack hat ein Volumen und eine bestimmte Anzahl von
Fächern.
• Ein Wanderrucksack ist ein Transportbehälter mit Fächern und einer Anzahl von
äußeren Schnallen. Die Fächer bestimmen das Volumen eines Wanderrucksacks.
Wanderrucksäcke werden von Menschen getragen, manche sind sogar für Kinder
geeignet.
• Eine Kühlbox ist ein Transportbehälter mit bestimmtem Volumen. Eine Kühlbox wird
von Menschen getragen und es gibt auch kleinere Ausführungen für Kinder.
Kühlboxen gibt es mit einer unterschiedlichen Anzahl von Kühlakkus.
• Ein Koffer ist ein Transportbehälter für Menschen. Manche Koffer sind sogar für
Kinder geeignet. Neben dem Volumen zeichnet sich jeder Koffer durch sein
Außenmaterial aus.
• Ein Container ist ein Transportbehälter, welcher einem Transportunternehmen gehört.
Es gibt Container mit verschiedenen Volumen.
• Ein Kühlcontainer ist ein Transportbehälter, welcher sich durch seine Kühlleistung (in
Grad Celsius) auszeichnet. Jeder Kühlcontainer ist Eigentum eines Transportunter-
nehmens und hat ein individuelles Volumen.
• Kühlboxen und Kühlcontainer sind gekühlte Behälter. Jeder gekühlte Behälter kann
aufgrund seiner Kühlleistung bzw. seiner Kühlakkus berechnen, wie lange seine
Kühlzeit ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Hilfe mit dem umgang von vererbung Java Basics - Anfänger-Themen 3
M Umgang mit dem Type "Date" Java Basics - Anfänger-Themen 6
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
X Probleme im Umgang mit PriorityQueue Java Basics - Anfänger-Themen 75
N Umgang mit Domain Framework Java Basics - Anfänger-Themen 2
J Umgang mit System.out.println() und .print() Java Basics - Anfänger-Themen 6
F Umgang mit referenzierten Objekten bei ArrayList Java Basics - Anfänger-Themen 1
C Hilfe für Kommentar-Zapper gesucht / Umgang mit Console Java Basics - Anfänger-Themen 0
M Umgang mit Thread/ Synchronisation/ Deadlock-Vermeidung Java Basics - Anfänger-Themen 5
J Umgang mit großen Datenmengen Java Basics - Anfänger-Themen 9
G Erste Schritte Fragen zum Umgang mit CSV Java Basics - Anfänger-Themen 2
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
J Effizienter Umgang mit großen Dateien Java Basics - Anfänger-Themen 7
I Umgang mit ByteBuffer Java Basics - Anfänger-Themen 11
I [Java] Umgang mit abstrakten Klassen, Interfaceklassen (BSP) Java Basics - Anfänger-Themen 12
M Der Umgang mit Iterator - Wie ein Objekt aus einer ArrayList Java Basics - Anfänger-Themen 2
J Umgang mit klassen ? Java Basics - Anfänger-Themen 3
J Umgang mit SQL Connections Java Basics - Anfänger-Themen 3
C Umgang mit Dateien Java Basics - Anfänger-Themen 4
G Umgang mit CSV-Dateien Java Basics - Anfänger-Themen 17
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
L Java- Vererbung Java Basics - Anfänger-Themen 4
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 12
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 1
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
M Vererbung Java Basics - Anfänger-Themen 6
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Java Basics - Anfänger-Themen 7
D Vererbung Java Basics - Anfänger-Themen 3
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
H Datenkapselung, Vererbung und UML Java Basics - Anfänger-Themen 16
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
1 Vererbung Klassenattribute Java Basics - Anfänger-Themen 9
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
N Thema Vererbung Java Basics - Anfänger-Themen 31
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
G Java Vererbung Java Basics - Anfänger-Themen 8
Y Vererbung Konto - Anfangsprobleme Java Basics - Anfänger-Themen 7
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
Kirby.exe Vererbung im Detail erklärt? Java Basics - Anfänger-Themen 9
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung im Computerspiel Java Basics - Anfänger-Themen 7
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
I Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
V Vererbung Java Basics - Anfänger-Themen 2
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
J Vererbung Java Basics - Anfänger-Themen 3
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
O Vererbung änderung des Konstruktors Java Basics - Anfänger-Themen 8
L Vererbung Java Basics - Anfänger-Themen 5
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
A Objekterstellung bei der Vererbung Java Basics - Anfänger-Themen 7
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
A Klassen Vererbung privater Methoden und Member Java Basics - Anfänger-Themen 12
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Generizität und Vererbung Java Basics - Anfänger-Themen 4
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
K Vererbung Octagon von Circle Java Basics - Anfänger-Themen 0
B Hilfe bei Vererbung Java Basics - Anfänger-Themen 2
D Vererbung Frage zum Klassenaufbau mit Vererbung Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 1
F Vererbung in zwei Richtungen? Java Basics - Anfänger-Themen 14
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
O Vererbung Java Basics - Anfänger-Themen 5
MiMa Vererbung Theorie OK, Praxis ?? Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben