Polymorphie und instanceOf Operator

kossy

Bekanntes Mitglied
Hallo !

im Zusammenhang mit dem Polymorphismus begegnet man ja immer wieder dem instance Of Operator, um so über eine einheitliche Schnittstelle, Membervariablen oder Methode der darunterliegenden Klassen aufrufen zu können.

Gibt es aber nur die Möglichkeit, dieses über den instance Of Operator zu bewerkstelligen? Gibt es hier evtl. auch eine Methode ohne instance Of Operator, solchen Code noch allgemeiner und wartungsfreundlicher zu formulieren?

Grüße
Kossy
 

Noctarius

Top Contributor
Was? Ich kann keinen sinnvollen Zusammenhang zwischen dem ersten Satz (der Aussage) und der Frage erkennen, bzw mir zusammen reimen.

Willst du Typen ohne instanceof testen? Wenn ja mal halt ein Type-Enum mit den Typen darin. Generell sollte man Hierarchien aber so definieren, dass man möglichst ohne instanceof auskommt (geht leider nicht immer, allein schon durch Generics).
 

kossy

Bekanntes Mitglied
Hallo !

Ich habe bszw. eine folgende Methode (diese befindet sich in einer Klasse Mechaniker):

Java:
public void prüfeFahrzeug(Auto auto){

}

Der Übergabeparameter ist vom Typ der Klasse Auto.

Die Klasse Auto besitzt aber noch zwei Unterklassen, z.B. ein Cabrio und ein LKW. Beide Unterklassen besitzen nun nicht nur die Attribute und Methode aus der gemeinsamen Oberklasse Auto, sondern besitzen auch noch eigene Membervariablen und eigene Methoden.

Nun möchte ich aber innerhalb der Methode "PrüfeFahrzeug" auf die Memberklassen und Methoden der beiden Unterklassen zugreifen und hier stellt sich eben für mich die Frage, ob ich immer zwingend über einen instance Of Operator abprüfen muss, um welchen Klassentypen es sich handelt und ob mal einen expliziten Cast durchführen muss, um entsprechenden Zugriff zu erhalten?

Grüße
Kossy
 

Guardi

Bekanntes Mitglied
Ja musst du. Du kannst im selben Zug aber auch gleich darüber nachdenken ob dein Design gut ist wenn du ständig downcasten musst.
 

kossy

Bekanntes Mitglied
Ja musst du. Du kannst im selben Zug aber auch gleich darüber nachdenken ob dein Design gut ist wenn du ständig downcasten musst.

Ok, aber was konkret wäre denn hier ein besseres Design? Ich kenne bisher nur die Herangehensweise über einen instance Of Operator und einen Downcast, ich wüste nciht, wie ich mein Design da verbessern könnte bzw. warum mein jetziges Design überhaupt schlecht sein soll.
 
G

Gast2

Gast
Muss der Mechaniker unbedingt wissen ob er ein Cabrio oder einen LKW repariert? Wenn ja, was für Gemeinsamkeiten gibts bei den beiden. Eventuell reicht dir ja schon nen Interface Repairable mit der Methode repair() die der Mechaniker dann aufrufen kann, dann liegt die Logik wie ein Auto zu reparieren ist in den Autos selbst. Da muss man aber etwas mehr Kontext kennen um sagen zu können ob das sinn macht oder nicht.

Wenn die Idee nicht gut ist dann bleibt dir noch die Möglichkeit die Methode zu überladen:
Java:
public void prüfeFahrzeug(Cabrio cabrio){
 
}

public void prüfeFahrzeug(LKW lkw){
 
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
T Beispiel Polymorphie, Tier hund = new Hund(); Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
T Polymorphie und LSP Java Basics - Anfänger-Themen 4
KogoroMori21 Polymorphie-Verständnis Java Basics - Anfänger-Themen 5
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
NeoLexx Zuweisungskompatibilität zwischen Vererbungsbeziehungen (Polymorphie) Java Basics - Anfänger-Themen 18
A Polymorphie Java Basics - Anfänger-Themen 4
O Polymorphie Java Basics - Anfänger-Themen 3
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
K Polymorphie Java Basics - Anfänger-Themen 6
C Polymorphie Was genau ist Polymorphie und wann genau sollte man es verwenden? Java Basics - Anfänger-Themen 9
C Kurze Frage zur Polymorphie Java Basics - Anfänger-Themen 1
J Polymorphie - Beispielcode Java Basics - Anfänger-Themen 7
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
T Polymorphie Java Basics - Anfänger-Themen 4
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
C Polymorphie Java Basics - Anfänger-Themen 1
L Polymorphie Polymorphie verstehen? Java Basics - Anfänger-Themen 2
H Polymorphie Verständnisproblem Vererbung/Polymorphie Java Basics - Anfänger-Themen 4
N Methoden Polymorphie Java Basics - Anfänger-Themen 11
M OOP Polymorphie/Vererbung Verständnisproblem Java Basics - Anfänger-Themen 2
E Polymorphie Beispiel Polymorphie Java Basics - Anfänger-Themen 2
S Vererbung Objekte in verwandten Klassen (Kovarianz, Polymorphie) Java Basics - Anfänger-Themen 4
R Polymorphie Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
P Polymorphie Java Basics - Anfänger-Themen 6
xehpuk Polymorphie Polymorphie in Parametern Java Basics - Anfänger-Themen 5
S Polymorphie und Vererbung Java Basics - Anfänger-Themen 6
H Kleines Problem mit der Polymorphie Java Basics - Anfänger-Themen 2
A OOP Polymorphie Java Basics - Anfänger-Themen 6
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
C OOP Frage zu Polymorphie Java Basics - Anfänger-Themen 4
P Eine Frage begzl. Interface / Polymorphie Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
F Verständnisfrage Objekt instanzierung / Polymorphie Java Basics - Anfänger-Themen 10
T Polymorphie:Überschreiben der Methode klappt nicht Java Basics - Anfänger-Themen 4
T Vererbung und Polymorphie Java Basics - Anfänger-Themen 7
C Unterschied zwischen Polymorphie und Typcasting Java Basics - Anfänger-Themen 10
S Polymorphie Verständnisproblem Java Basics - Anfänger-Themen 4
Z Vererbung oder Polymorphie? Java Basics - Anfänger-Themen 5
J Polymorphie Java Basics - Anfänger-Themen 6
G Polymorphie und Interface Java Basics - Anfänger-Themen 2
S Polymorphie und Vererbung Java Basics - Anfänger-Themen 25
S Polymorphie - oder auch spanisches Dorf? Java Basics - Anfänger-Themen 5
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
J instanceof Operator Java Basics - Anfänger-Themen 3
G instanceof in Generic Java Basics - Anfänger-Themen 7
A instanceof-if-else-Anweisungen eleganter lösen Java Basics - Anfänger-Themen 5
B instanceof Java Basics - Anfänger-Themen 9
L Best Practise - 'instanceof' oder nicht. Java Basics - Anfänger-Themen 7
Luk10 instanceof Class<T> Java Basics - Anfänger-Themen 6
I if (listenObjekt instanceof meinObjekt.class) Java Basics - Anfänger-Themen 5
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
M Compiler-Fehler instanceof compiler-error Java Basics - Anfänger-Themen 2
A Alternative instanceof Java Basics - Anfänger-Themen 3
0 Vererbung - instanceof Java Basics - Anfänger-Themen 20
J this instanceof Class<Object> Java Basics - Anfänger-Themen 1
D HasMap mit JComponents mit instanceof Java Basics - Anfänger-Themen 3
K Equals,Instanceof und "==" Java Basics - Anfänger-Themen 7
A Datentypen instanceof VS Class - Vergleich Java Basics - Anfänger-Themen 4
S Bessere Lösung zu häufigem instanceof Java Basics - Anfänger-Themen 25
A Besser als instanceof Java Basics - Anfänger-Themen 6
E instanceof vs class==class Java Basics - Anfänger-Themen 5
B instanceof Prüfung für generische Typen Java Basics - Anfänger-Themen 5
S instanceof Comparable...geht nicht? Java Basics - Anfänger-Themen 20
K instanceof Java Basics - Anfänger-Themen 22
A Vereinfachung instanceof Java Basics - Anfänger-Themen 12
G Mit "instanceof" sich selbst Fragen? Java Basics - Anfänger-Themen 4
S Instanceof umkehren Java Basics - Anfänger-Themen 2
E Negative Abfrage auf instanceof Java Basics - Anfänger-Themen 3
D if (event.target instanceof TextField) Java Basics - Anfänger-Themen 2
pkelod Binäre Darstellung Bitwise-Operator Java Basics - Anfänger-Themen 10
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
C ?: Operator Java Basics - Anfänger-Themen 14
L Java operator % Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
C Ternärer Operator mit Strings Java Basics - Anfänger-Themen 3
L Modulus Operator Java Basics - Anfänger-Themen 3
A Zuweisungen und -- operator; Java Basics - Anfänger-Themen 2
H << Operator Java Basics - Anfänger-Themen 7
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
H Operatoren Der bedingte Operator ? : ; Java Basics - Anfänger-Themen 2
J new-Operator Java Basics - Anfänger-Themen 6
H this operator - was ist das? Java Basics - Anfänger-Themen 2
R Operatoren Bad operand types for binary operator Java Basics - Anfänger-Themen 4
O Bedingter Operator eine Frage! Java Basics - Anfänger-Themen 10
O Erste Schritte x*y*z mit Shift Operator moeglich? Java Basics - Anfänger-Themen 15
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
E Methoden in new-Operator Methode in geschweifter Klammer Java Basics - Anfänger-Themen 3
I bad operand types for binary operator > Java Basics - Anfänger-Themen 5
D Conditional Operator ?: Java Basics - Anfänger-Themen 3
L Operatoren Übungsklausuraufgabe, unbekannter Operator Java Basics - Anfänger-Themen 13
H Operatoren Fehler bad operand types for binary operator Java Basics - Anfänger-Themen 7
snipesss Operator "-" is undefined Java Basics - Anfänger-Themen 1
F Operatoren If mit variabelem Operator Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben