Vererbung oder Polymorphie?

Status
Nicht offen für weitere Antworten.

zuro

Mitglied
Hallo,


Folgender Aufbau A ist Basisklasse und B erbt von A und C erbt von B.
Hab dazu einige Fragen, s.u.
Code:
	public class A {...}
	
		
	public class B extends A{...}
		
	
	
	public class C extends B{...}


	testMethode(){	

		A aklasse = new A();
		B bklasse = new B();
		B xklasse = new C();	// Warum geht das überhaupt muss Referenz und objekt nicht gleich sein					
      C cklasse = new C();
		

		//Hier folgen die Zuweisungen
	}
Zuweisungen:

Code:
1. cklasse =(C)xklasse;
2. cklasse = aklasse;
3. bklasse = aklasse;
4. bklasse = cklasse;
5. aklasse = bklasse;
6. cklasse = xklasse;

Welche von den Zuweisungen sind richtig?
Meine Antworten sind:
1. Richtig
2. Falsch
3. Falsch
4. Richtig
5. Falsch
6. Falsch
Jedoch keine Ahnung ob das Stimmt, bin mir nur beim 1. sicher, weil da ja voher (C) gemacht wird.
Gibt es da eine Regel, woran man erkennt ob es möglich ist, oder nicht, bzw. warum nicht?
Bzw. was ist das überhaupt Vererbung oder Polymorphie?
Vielen Dank.

mfg
 

Tellerrand

Bekanntes Mitglied
zuro hat gesagt.:
public class C extends B{...}

B xklasse = new C(); // Warum geht das überhaupt muss Referenz und objekt nicht gleich sein
Nein, man kann z.B. auch jede x beliebige Klasse als Objekt ansehen.
Das ist deshalb möglich, weil C eine spezielle Version von Klasse B ist, also Methoden/Variablen/etc erbt.
Bei der Vererbung gilt ja Oberklasse + Zusatz = Unterklasse, man erbt alles und fügt ein, bzw ersetzt ... aber man wird niemals sichtbare Funktionen, Variablen entfernen können.
(Jeder Benz ist und bleibt noch ein Auto, das Auto hat Reifen, Türen, ... )


Ich würde vorschlagen du schaust dir einfach ein paar Erklärungen zum Thema Vererbung an, dann sind deine restlichen Fragen auch geklärt. Ich will hier jetzt das Rad nicht neu erfinden und verweise dich deshalb mal auf: http://www.galileocomputing.de/openbook/javainsel6/javainsel_06_007.htm
 

zuro

Mitglied
Hallo danke für den Link, scheint ja ganz gut zu sein, aber hab trotzdem noch Fragen.
Hoffe ich kann das hier einfach reinschreiben Quelle ist http://www.galileocomputing.de/open...06_007.htm#mjdce1920fea1dc1352cd5e2825a0cd5c7

6.7.6 Das Substitutionsprinzip


Bleiben wir bei unserem Beispiel des Parameters. Für unsere Disko-Vererbungsbeziehung bedeutet dies: Überall dort, wo ein Gebäude gefordert ist, können wir eine Disko übergeben oder auch eine Kirche, wenn Kirche eine Unterklasse von Gebäude ist. Auch können wir eine Kinderdisko eingeben, wenn sie eine Unterklasse von Disko ist. Denn alle diese Dinge sind vom Typ Gebäude und daher typkompatibel.


Würde ja für mich bedeuten z.B.
Gebäude
Disko extends Gebäude
Kinderdisko extends Disko
<=>
A
B extends A
C extends B
richtig?

6.7.7 Automatische und explizite Typanpassung

Leider sind hier die Beispiele nur in die andere Richtung

Code:
package v8; 
 
public class DiskoSubstitution 
{ 
  public static void main( String[] args ) 
  { 
    KinderDisko saloon = new KinderDisko(); 
    saloon.maskottchen = "Yosemite Sam"; 
    saloon.personRein(); 
 
  Disko zumDickenHomer = new KinderDisko(); 
//  zumDickenHomer.maskottchen = "Homer Simpson"; 
  zumDickenHomer.personRein(); 
 
  Object hase = new KinderDisko(); 
//  hase.maskottchen = "Bugs Bunny"; 
//  hase.personRein(); 
  } 
}

Das Beispiel ist ja gut und schön, allerdings hilft mir das nicht wirklich bei der LÖsung von meinem Problem, da dort immer nach "oben gegangen" wird von KinderDisko bis Object, Bzw. weiß ich immer noch nicht ob das richtig ist s.u., habs noch mal überdacht... aber kein Ahnung?
1. Richtig
2. Falsch
3. Falsch
4. Richtig
5. Richtig
6. Falsch

mfg
zuro
 

Tellerrand

Bekanntes Mitglied
Einfach gehaltene Erklärung:
zuro hat gesagt.:
Code:
1. cklasse =(C)xklasse;
// C ist auch C ... richtig

2. cklasse = aklasse;
// aklasse kann vom Typ A, B oder C sein, somit keine Garantie, dass aklasse vom Typ C ist ... falsch

3. bklasse = aklasse;
// aklasse kann vom Typ A, B oder C sein, somit keine Garantie, dass aklasse vom Typ B ist ... falsch

4. bklasse = cklasse;
// cklasse ist vom Typ C, somit auch vom Typ B (C extends B) ... richtig

5. aklasse = bklasse;
// bklasse ist vom Typ B, somit auch vom Typ A (B extends A) ... richtig

6. cklasse = xklasse;
// cklasse ist vom Typ C, xklasse ist von Typ C, aber xklasse ist als allgemeinerer Typ B referenziert, also müsste man noch einen Cast (C) hinzufügren ... falsch
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
H Polymorphie Verständnisproblem Vererbung/Polymorphie Java Basics - Anfänger-Themen 4
M OOP Polymorphie/Vererbung Verständnisproblem Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
S Polymorphie und Vererbung Java Basics - Anfänger-Themen 6
T Vererbung und Polymorphie Java Basics - Anfänger-Themen 7
S Polymorphie und Vererbung Java Basics - Anfänger-Themen 25
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
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
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
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
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
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
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
J Kleinere Frage zur Vererbung/Objekterzeugung Java Basics - Anfänger-Themen 2
G Vererbung Java Basics - Anfänger-Themen 12
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
J Vererbung Vererbung von Methoden Java Basics - Anfänger-Themen 6
B Vererbung Java Basics - Anfänger-Themen 12
K Vererbung (super) Java Basics - Anfänger-Themen 2
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
C Vererbung Java Basics - Anfänger-Themen 4
L Vererbung Java Basics - Anfänger-Themen 3
J Klassenorganisation | Vererbung Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben