• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dziedziczenie - problem z konstruktorem

0 głosów
98 wizyt
pytanie zadane 30 września 2015 w Java przez użytkownika Damianoo4444 Bywalec (2,720 punkty)
edycja 30 września 2015 przez użytkownika event15

Cześć, tworzę sobie prosty program, aby przyswoić wiedzę i napotkałem problem przy dziedziczeniu.

Tworze 3 klasy które dziedziczą po kolei: A -> B -> C
Oto zarys klas:

public Class A {
    private int a;

    public A(int a) {
         this.a = a;
    }
}

 

public Class B extends A{
    private int b;

    public B(int a,int b) {
        super(a);
        this.b = b;
    }
}

public Class C extends B {
    private int c;

    public C(int a,int b,int c) {
        super(a,b,c);
        this.c = c;
    }
}

 

i w klasie C wyskakuje błąd z komunikatem, że konstruktor klasy B wymaga braku argumentów.

2 odpowiedzi

+1 głos
odpowiedź 30 września 2015 przez użytkownika Grzyboo Nałogowiec (28,130 punkty)

W klasie C wywołujesz super(...), czyli konstruktor klasy nadrzędnej, a ten ma postać B(int, int). Ty natomiast wywołujesz super(int, int, int) z jakiegoś powodu. Skasuj "c" po prostu.

public Class C extends B {
    private int c;
 
    public C(int a,int b,int c) {
        super(a,b);
        this.c = c;
    }
}

 

0 głosów
odpowiedź 30 września 2015 przez użytkownika Ehlert Maniak (73,350 punkty)
Pisze jak byk. Powinieneś wywołać ten konstruktor. W klasie B konstruktor ma dwa argumenty int. Dlaczego więc w klasie C, super ma 3 argumenty?

Podobne pytania

0 głosów
2 odpowiedzi 174 wizyt
pytanie zadane 14 lipca 2015 w C i C++ przez użytkownika Dorion300 Szeryf (86,530 punkty)
0 głosów
2 odpowiedzi 112 wizyt
pytanie zadane 17 października 2015 w C i C++ przez użytkownika Szahid Stary wyjadacz (12,650 punkty)
0 głosów
1 odpowiedź 94 wizyt
pytanie zadane 9 stycznia w C i C++ przez użytkownika czujek22 Gaduła (4,270 punkty)
...