Junior
Lze přetížit konstruktory v Javě?
sobes.tech AI
Odpověď od AI
Ne, v Javě se konstruktorů nepřepisuje (overriding). Přepisování se týká metod třídy potomka, které mají stejnou signaturu (název, typ návratové hodnoty a seznam parametrů) jako metoda v rodičovské třídě.
Místo přepisování se v Javě používá přetížení (overloading) konstruktorů. To znamená, že ve stejné třídě může být několik konstruktorů se stejným názvem, ale s různými seznamy parametrů (počet, typy nebo pořadí).
Potomková třída může volat konstruktory rodičovské třídy pomocí klíčového slova super(...).
Příklad přetížení konstruktorů:
class MyClass {
int value;
String name;
// Výchozí konstruktor
public MyClass() {
this.value = 0;
this.name = "default";
// Volání jiného konstruktoru pomocí this()
this(0, "default");
}
// Přetížený konstruktor s jedním parametrem
public MyClass(int value) {
this.value = value;
this.name = "default";
}
// Přetížený konstruktor se dvěma parametry
public MyClass(int value, String name) {
this.value = value;
this.name = name;
}
}