Hallo zusammen,
Zu folgender Zeichnung Directupload.net - Dkn6lpyyv.jpg hab ich folgenden CODE.
Dabei geht es um UPCAST und DOWNCAST oder? Upcast ist Generalisierung und Downcast ist die Spezialisierung.
Bei der Methode MessungY also der dritten geposteten Methode steht:
double x = super.wert; // greif ich nicht hiermit auf den Wert des Attribut der Oberklasse auf?
// ist das down cast?
Handelt es sich hierbei um downcast? Da man der Variablen x den Wert der Oberklasse zuweise ?
Danke...
Zu folgender Zeichnung Directupload.net - Dkn6lpyyv.jpg hab ich folgenden CODE.
Dabei geht es um UPCAST und DOWNCAST oder? Upcast ist Generalisierung und Downcast ist die Spezialisierung.
Bei der Methode MessungY also der dritten geposteten Methode steht:
double x = super.wert; // greif ich nicht hiermit auf den Wert des Attribut der Oberklasse auf?
// ist das down cast?
Handelt es sich hierbei um downcast? Da man der Variablen x den Wert der Oberklasse zuweise ?
Java:
class Messung extends Object {
double wert = 3.1415;
Messung(double wert){
super();
this.wert = wert;
}
// lesen von wert
double getWert() {
return wert;
}
// setzen von wert
void setWert(double wert) {
this.wert = wert;
}
boolean istGleich(Messung ander) {
if( wert == ander.getWert() ) {
return true;
}
else {
return false;
}
}
}
/*
Klasse ändern?
- Klasse ist stabil => besser nicht
- Klasse ist im Einsatz => besser nicht
- Klasse gehört mir nicht => geht gar nicht
Lösung: Spezialisierung, Vererbung
*/
Java:
class MessungX extends Messung {
String ort;
MessungX(double wert, String ort) {
super(wert);
this.ort = ort;
}
}
/* Jeder Konstruktor ruft in der ersten Zeile
einen Konstruktor der Oberklasse auf
= Initialisierung der Oberklasse
Wenn nicht, dann fügt der Compiler den
Aufruf super() ein.
*/
Java:
/* Überdecken von Attributen */
class MessungY extends Messung {
String wert = "Köln";
// wert-Attribut der Oberklasse
// super wechselt auf den Typ der Oberklasse
double x = super.wert; // greif ich nicht hiermit auf den Wert des Attribut der Oberklasse auf?
// ist das down cast?
}
/* bei Zugriff auf Attribute gilt der
aktuelle Typ */
Danke...