G 
		
				
			
		Guest
Gast
Hallo, 
ich übe gerade etwas, bin aber noch nicht so geübt...*g
Habe folgendes Pogramm:
	
	
	
	
	
		
	
Also die Ausgabe (erg.) 1-3 kann ich noch nachvollziehen, was aber passiert in der Zeile für //erg 4 ??
Wird erst Oberklasse aufgerufen, dann unten2 ? Also ich komme da nicht auf den Wert 11.
Eeine anschauliche Erklärung wäre sehr nett.
gruß
jonas
			
			ich übe gerade etwas, bin aber noch nicht so geübt...*g
Habe folgendes Pogramm:
		Code:
	
	public class Oberklasse
{
int a, b;
Oberklasse() {a = 3; b = 7;}
Oberklasse(int n) {this(); b = b + n;}
void ändern() {a = 5;}
void ändern(double d) {if(d < 5.0) a = 4; else a = 5;}
}
public class Unterklasse extends Oberklasse
{
int b = 0; 
int c = 0;
static int k = 5;
Unterklasse() {b = 1; c = b + 1;}
Unterklasse(int n, int m) {super(m); k = n;}
void ändern() {a = 4;}
void ändern(int n) {a = n / 2;}
}
public class Aufgabe
{
public static void main(String args[])
{
Oberklasse oben = new Oberklasse();
Unterklasse unten1 = new Unterklasse();
Unterklasse unten2 = new Unterklasse(3, 4);
System.out.println(unten1.b);                            //erg. 1
System.out.println(unten1.a);                           // erg 2
System.out.println(unten2.b);                           // erg 3
System.out.println(((Oberklasse)unten2).b);      // erg 4
System.out.println(unten2.k);                           // erg 5
System.out.println(unten1.k);                           // erg 6
oben = unten1;
unten1.ändern();
System.out.println(unten1.a);                           //erg 7
oben.ändern();
System.out.println(oben.a);                             //erg 8
unten1.ändern(3.017);
System.out.println(unten1.a);                         // erg 9
oben.ändern(6);
System.out.println(oben.a);                             // erg 10
}
}
	Also die Ausgabe (erg.) 1-3 kann ich noch nachvollziehen, was aber passiert in der Zeile für //erg 4 ??
Wird erst Oberklasse aufgerufen, dann unten2 ? Also ich komme da nicht auf den Wert 11.
Eeine anschauliche Erklärung wäre sehr nett.
gruß
jonas