Witam, mam problem z klasami potomnymi w Javie, tzn. napisałem program lecz innego wyniku się spodziewałem, czy mógłby mi ktoś pomóc?
class Punkt {
int x;
int y;
Punkt() {
x = 1;
y = 1;
}
Punkt(int wspX, int wspY) {
x = wspX;
y = wspY;
}
Punkt(Punkt punkt) {
x = punkt.x;
y = punkt.y;
}
}
class Punkt3D extends Punkt {
int z;
Punkt3D() {
super();
z = 1;
}
Punkt3D(int wspX, int wspY, int wspZ) {
super();
z = wspZ;
}
Punkt3D(Punkt3D punkt) {
super(punkt);
z = punkt.z;
}
}
class Main {
public static void main (String args[]) {
Punkt3D punkt1 = new Punkt3D();
System.out.println("punkt1:");
System.out.println("x = " + punkt1.x);
System.out.println("y = " + punkt1.y);
System.out.println("z = " + punkt1.z);
System.out.println(" ");
Punkt3D punkt2 = new Punkt3D(10,20,30);
System.out.println("punkt2:");
System.out.println("x = " + punkt2.x);
System.out.println("y = " + punkt2.y);
System.out.println("z = " + punkt2.z);
System.out.println(" ");
Punkt3D punkt3 = new Punkt3D(punkt2);
System.out.println("punkt3:");
System.out.println("x = " + punkt3.x);
System.out.println("y = " + punkt3.y);
System.out.println("z = " + punkt3.z);
}
}
Spodziewałem się w konsoli wyniku
punkt1:
x = 1
y = 1
z = 1
punkt2:
x = 10
y = 20
z = 30
punkt3:
x = 10
y = 20
z = 30
A zamiast tego w punkcie 2 i 3 x=1 y=1, z=30