Junior
Átírhatók-e a konstruktorok Java-ban?
sobes.tech MI
Válasz az MI-től
Nem, Java-ban a konstruktorokat nem lehet felülírni (overriding). A felülírás a leszármazott osztály metódusaira vonatkozik, amelyek ugyanazzal a szignóval (név, visszatérési típus és paraméterlista) rendelkeznek, mint a szülő osztályban lévő metódus.
Helyette Java-ban a túlterhelést (overloading) használják a konstruktoroknál. Ez azt jelenti, hogy egy osztályban több konstruktor is lehet ugyanazzal a névvel, de különböző paraméterlistákkal (szám, típus vagy sorrend).
Az alosztály hívhatja a szülő osztály konstruktorait a super(...) kulcsszóval.
Példa a konstruktorok túlterhelésére:
class MyClass {
int value;
String name;
// Alapértelmezett konstruktor
public MyClass() {
this.value = 0;
this.name = "default";
// Egy másik konstruktor hívása this() segítségével
this(0, "default");
}
// Egy paraméteres túlterhelt konstruktor
public MyClass(int value) {
this.value = value;
this.name = "default";
}
// Két paraméteres túlterhelt konstruktor
public MyClass(int value, String name) {
this.value = value;
this.name = name;
}
}