Junior
Je možné prepísať konštruktory v Jave?
sobes.tech AI
Odpoveď od AI
Nie, v Jave sa konštruktory nepíšu (overriding). Přepisovanie sa týka metód triedy, ktoré majú rovnakú signatúru (názov, typ návratovej hodnoty a zoznam parametrov) ako metóda v rodičovskej triede.
Namiesto prepisovania sa v Jave používajú preťaženia (overloading) konštruktorov. To znamená, že v jednej triede môže byť viacero konštruktorov s rovnakým názvom, ale s rôznymi zoznamami parametrov (počet, typy alebo poradie).
Podtrieda môže volať konštruktory rodičovskej triedy pomocou kľúčového slova super(...).
Príklad preťaženia konštruktorov:
class MyClass {
int value;
String name;
// Predvolený konštruktor
public MyClass() {
this.value = 0;
this.name = "default";
// Volanie iného konštruktora pomocou this()
this(0, "default");
}
// Preťažený konštruktor s jedným parametrom
public MyClass(int value) {
this.value = value;
this.name = "default";
}
// Preťažený konštruktor s dvomi parametrami
public MyClass(int value, String name) {
this.value = value;
this.name = name;
}
}