Hallo Leute,
Ich habe folgenden Programmcode, und soll die Ausgabe bestimmen. Dabei bereiten mir die letzten zwei Ausgaben schwierigkeiten und ich hoffe ihr könnt mir dabei helfen.
Bis jetzt bin ich davon Ausgegangen das als A z = b zugewiesen wurde, z auch die Methode f von B übernimmt, da diese Überschrieben wird. Allerdings kann ich mir nicht erklären wieso b.x verändert wird und nicht z.x. Wieso kennt z.x die Variable x aus B überhaupt 😱
Die letzten beiden Ausgaben sind
vorletzte Ausgabe_Out: -2 4 und eben nicht 4 -2.
letzte Ausgabe_Out: -3 4 und eben nicht 4 -3.. Ich kanns mir nicht erklären... Vielen Dank !
Ich habe folgenden Programmcode, und soll die Ausgabe bestimmen. Dabei bereiten mir die letzten zwei Ausgaben schwierigkeiten und ich hoffe ihr könnt mir dabei helfen.
Bis jetzt bin ich davon Ausgegangen das als A z = b zugewiesen wurde, z auch die Methode f von B übernimmt, da diese Überschrieben wird. Allerdings kann ich mir nicht erklären wieso b.x verändert wird und nicht z.x. Wieso kennt z.x die Variable x aus B überhaupt 😱
Die letzten beiden Ausgaben sind
vorletzte Ausgabe_Out: -2 4 und eben nicht 4 -2.
letzte Ausgabe_Out: -3 4 und eben nicht 4 -3.. Ich kanns mir nicht erklären... Vielen Dank !
Java:
public class A {
public int x = 1;
public A(int x) {
this.x += x;
}
public A(double x) {
x += x;
}
public void f(double x) {
this.x = this.x + (int)(x + B.y);
}
}
public class B extends A {
public static int y = 3;
public int x = 0;
public B(double x) {
super((int) x);
}
public void f(int y) {
this.x = y * 2;
B.y = this.x;
}
public void f(double y) {
this.x = (int) y + B.y;
}
public void tss() {
System.out.println("JApop");
}
}
public class M {
public static void main(String[] args) {
A a = new A(B.y);
System.out.println(a.x);
a.f(1);
System.out.println(a.x);
B b = new B(3.0);
System.out.println(b.x);
A z = b;
System.out.println(z.x);
z.f(-5.0);
System.out.println(b.x + " " + z.x);
z.f(-6);
System.out.println(b.x + " " + z.x);
}
}
Zuletzt bearbeitet von einem Moderator: