Java klasy potomne, wyświetlają się złe dane

0

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

1

Tutaj:

Punkt3D(int wspX, int wspY, int wspZ) {
    super();
    z = wspZ;
  }

Wołasz zły konstruktor bazowy. Zamień to na:

super(wspX, wspY);

I będzie cacy, klik: http://ideone.com/U45Aba

0

Dziekuje serdecznie za pomoc, małe przeoczenie z mojej strony :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1