Polymorphie Verständnisproblem Vererbung/Polymorphie

HansSchnier

Neues Mitglied
Hallo Java Freunde,

ich habe ein Verständnisproblem im Bezug auf die Vererbung.
Wenn ich ein Objekt einer Oberklasse erzeuge, wir beim Versuch dieses auf eine Unterklasse zu casten eine ClassCastException ausgegeben. Ich verstehe nicht warum. Die Unterklasse verfügt doch über die gleichen Membervariablen wie die Unterklasse. Oder habe ich da grundsätzlich was falsch verstanden?

Beispiel:
Java:
public class test {
	

	public static void main(String[] args) {
		
		Stift stift = new Stift();
		stift.farbe = "blau";
		
		Druckbleistift druckbleistift = (Druckbleistift) stift;
		druckbleistift.mienenstaerke = "0.7";
		
	}

}

class Stift{
	String farbe;
}

class Druckbleistift extends Stift{
	String mienenstaerke;
	
}


Vielen Dank für eure Hilfe!
 

Joose

Top Contributor
Wenn ich ein Objekt einer Oberklasse erzeuge, wir beim Versuch dieses auf eine Unterklasse zu casten eine ClassCastException ausgegeben.

Ja, leider kann man sich beim casten von Ober- zu Unterklasse nicht sicher sein ob es die passende Unterklasse gibt.
(Das es vielleicht nur 1 Unterklasse gibt - was unlogisch wäre - weiß Java nicht)
Umgekehrt ist das ganze kein Problem!

Auf dein Beispiel bezogen
Java:
class Stift{
String farbe;
}
 
class Druckbleistift extends Stift{
String mienenstaerke;
}

Die Klasse Druckbleistift ERWEITERT die Klasse Stift um mehr Funktionalität.
Das heißt ein Druckbleistift kann auch immer ein Stift sein! Aber ein Stift muss nicht unbedingt ein Druckbleistift sein.

Anschaulicher wird es wenn du eine weitere Klasse hinzufügst die auch von der Klasse Stift ableitet.
Java:
class Kugelschreiber extends Stift{
String tintenart;
}

Wenn du nun nur ein Objekt von "Stift" erstellst, woher soll Java wissen ob es nun ein Kugelschreiber oder ein Druckbleistift ist?
Und nein man soll es nicht nach Wunsch in eines von beiden Casten können:
1) Java muss für das objekt Speicher reservieren, wenn ich dann caste braucht das Objekt vielleicht mehr Speicher den es nicht mehr gibt oder ähnliches
2) Erstelle ich zuerst ein Stift-Objekt und caste es dann zum passenden, hätte ich eigentlich auch gleich das passende Objekt erstellen können
 
Zuletzt bearbeitet:

arilou

Bekanntes Mitglied
Es geht schon, aber man muss es vorher sicherstellen:
Java:
class KFZ {
  String fahrgestellnummer;
}
class Auto extends KFZ {
  boolean hatAnhaengerKupplung ;
}
class Motorrad extends KFZ {
  boolean isFussRasteEingeklappt ;
}

class HauptProgi {
  public static void main(String[] args) {
    KFZ fahrzeug1 = new Auto();
    KFZ fahrzeug2 = new Motorrad();
    Auto auto1 ;

    auto1 = (Auto) fahrzeug2 ; // fuehrt zu ClassCastException
    // richtig:
    if( fahrzeug1 instanceOf Auto )
      auto1 = (Auto) fahrzeug1 ;
    // else: TODO

  }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M OOP Polymorphie/Vererbung Verständnisproblem Java Basics - Anfänger-Themen 2
lesni Vererbung Vererbung - Verständnisproblem Java Basics - Anfänger-Themen 2
B Verständnisproblem bei Vererbung Java Basics - Anfänger-Themen 3
T Vererbung von Attributen und Methoden, Verständnisproblem Java Basics - Anfänger-Themen 4
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
nonickatall Grundsätzliches Verständnisproblem des Aufbaus eines Programms Java Basics - Anfänger-Themen 19
X Verständnisproblem Call-By-Reference Java Basics - Anfänger-Themen 5
P JavaFX: Verständnisproblem bei ComboBox/ChoiceBox etc. Java Basics - Anfänger-Themen 9
T Verständnisproblem mit Assoziationen Java Basics - Anfänger-Themen 7
M Verständnisproblem der Rekursion bei Arrays Java Basics - Anfänger-Themen 8
A Erste Schritte Verständnisproblem Java Basics - Anfänger-Themen 5
S Verständnisproblem Aufgabe Java Basics - Anfänger-Themen 9
S Model View Controller: Verständnisproblem Java Basics - Anfänger-Themen 13
temi Verständnisproblem Class.forName() Java Basics - Anfänger-Themen 3
2 Verständnisproblem bei Anwendung von Lower Bounded Wildcards Java Basics - Anfänger-Themen 5
V Verständnisproblem Java Basics - Anfänger-Themen 22
L [Verständnisproblem] Array wird trotz void rückgabe verändert. Java Basics - Anfänger-Themen 5
A Verständnisproblem Ausgabe Do-While-Schleife Java Basics - Anfänger-Themen 3
J Verständnisproblem einer Methode Java Basics - Anfänger-Themen 20
M Konstruktur - Verständnisproblem Java Basics - Anfänger-Themen 4
C Postinkrement und println - Verständnisproblem Java Basics - Anfänger-Themen 8
T Verständnisproblem beim Vigenere-Verfahren Java Basics - Anfänger-Themen 2
Q MVC Verständnisproblem: Controller vs model.modelChanged() Java Basics - Anfänger-Themen 0
N Verständnisproblem InsertionSort. Java Basics - Anfänger-Themen 2
D Verständnisproblem Java Basics - Anfänger-Themen 2
B VerständnisProblem mit Beispielaufgabe aus Buch Java Basics - Anfänger-Themen 1
FrankR2 Grundsätzliches Verständnisproblem: Java 32/64-bit; Windows 7/8, 32/64-bit-System Java Basics - Anfänger-Themen 5
S Verständnisproblem bei Interfaces Java Basics - Anfänger-Themen 6
V Verständnisproblem Java Basics - Anfänger-Themen 5
V Arrays-verständnisproblem Java Basics - Anfänger-Themen 4
M Collections HashSet verständnisproblem Java Basics - Anfänger-Themen 9
S Verständnisproblem einer Übungsaufgabe Java Basics - Anfänger-Themen 6
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
G Verständnisproblem mit swing Java Basics - Anfänger-Themen 6
F Methoden Cannot refer to a non-final variable.. verständnisproblem. Java Basics - Anfänger-Themen 7
P Verständnisproblem main Methode Java Basics - Anfänger-Themen 9
S Klassen Verständnisproblem Konstruktor Java Basics - Anfänger-Themen 7
I e.getMessage(); - Verständnisproblem Java Basics - Anfänger-Themen 6
J Verständnisproblem Methoden-Kettung Java Basics - Anfänger-Themen 3
A Vererbung Verständnisproblem bei Übung Java Basics - Anfänger-Themen 5
E Verständnisproblem Typkonvertierung Java Basics - Anfänger-Themen 4
S OOP Verständnisproblem Umsteiger Java Basics - Anfänger-Themen 22
C Array Verständnisproblem Java Basics - Anfänger-Themen 3
P White-Box-Test Verständnisproblem Java Basics - Anfänger-Themen 11
D : ? Operator -Verständnisproblem Java Basics - Anfänger-Themen 24
G Verständnisproblem: Exceptions Java Basics - Anfänger-Themen 17
L Eclipse verlangt "{" nach ";"... Verständnisproblem Java Basics - Anfänger-Themen 5
D charAt(i) verständnisproblem Java Basics - Anfänger-Themen 4
D Verständnisproblem Marken und Schleifen Java Basics - Anfänger-Themen 19
M Verständnisproblem bei Ternären Operanten bzw. Bedingungsoperator Java Basics - Anfänger-Themen 8
T Datentypen Verständnisproblem mit main Methode Java Basics - Anfänger-Themen 3
M Verständnisproblem Threads Java Basics - Anfänger-Themen 7
X Threads und synchronized - Verständnisproblem Java Basics - Anfänger-Themen 3
W ArrayLists: Verständnisproblem bei remove() Java Basics - Anfänger-Themen 2
B Verständnisproblem zu Swing und Methoden Java Basics - Anfänger-Themen 8
A Postinkrement-Verständnisproblem Java Basics - Anfänger-Themen 12
R Iterator Liste, Verständnisproblem Java Basics - Anfänger-Themen 4
1 Verständnisproblem mit Foreach Java Basics - Anfänger-Themen 4
W generisches Programmieren - Verständnisproblem Java Basics - Anfänger-Themen 4
A Verständnisproblem Nr 2 Java Basics - Anfänger-Themen 14
A Verständnisproblem Java Basics - Anfänger-Themen 6
A Array Verständnisproblem Java Basics - Anfänger-Themen 8
G Verständnisproblem --> JTree Java Basics - Anfänger-Themen 6
M Verständnisproblem mit der Klasse Thread Java Basics - Anfänger-Themen 10
N BufferedReader Verständnisproblem Java Basics - Anfänger-Themen 12
G Verständnisproblem: Code kompelieren und interpretieren Java Basics - Anfänger-Themen 3
S Polymorphie Verständnisproblem Java Basics - Anfänger-Themen 4
G Verständnisproblem Türme von Hanoi Java Basics - Anfänger-Themen 4
G Verständnisproblem Serverinput einlesen. Java Basics - Anfänger-Themen 4
J Array und Schleifen Verständnisproblem Java Basics - Anfänger-Themen 25
G Verständnisproblem Java Basics - Anfänger-Themen 4
N Verständnisproblem: Mehrere Objekte einer Klasse erstellen Java Basics - Anfänger-Themen 2
S SelectionListener + repaint().Verständnisproblem ;) Java Basics - Anfänger-Themen 7
V Verständnisproblem mit Abstrakten zu Konkreten Klassen Java Basics - Anfänger-Themen 7
A Problem mit der Stringgrösse, bzw Verständnisproblem? Java Basics - Anfänger-Themen 14
A Verständnisproblem mit ScrollPanel Java Basics - Anfänger-Themen 3
R Verständnisproblem mit Hibernate Java Basics - Anfänger-Themen 2
T Verständnisproblem mit equals() Java Basics - Anfänger-Themen 4
N datei byte für byte auslesen (verständnisproblem) Java Basics - Anfänger-Themen 2
T Verständnisproblem packages/import Java Basics - Anfänger-Themen 9
Chucky Lineare Listen Programm Verständnisproblem Java Basics - Anfänger-Themen 38
D Verständnisproblem Java Basics - Anfänger-Themen 6
S for Schleifen: Verständnisproblem Java Basics - Anfänger-Themen 15
bernd while-Schleife: Verständnisproblem Java Basics - Anfänger-Themen 7
S verständnisproblem drucken Java Basics - Anfänger-Themen 11
G GridBagLayout: Verständnisproblem Java Basics - Anfänger-Themen 5
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

Ähnliche Java Themen

Neue Themen


Oben