Junior
Czy można nadpisywać konstruktory w Java?
sobes.tech AI
Odpowiedź od AI
Nie, w Javie konstruktory nie są nadpisywane (overriding). Nadpisywanie odnosi się do metod klasy potomnej, które mają tę samą sygnaturę (nazwa, typ zwracany i lista parametrów) co metoda w klasie nadrzędnej.
Zamiast nadpisywania, w Javie używa się przeciążania (overloading) konstruktorów. Oznacza to, że w jednej klasie może być kilka konstruktorów o tej samej nazwie, ale z różnymi listami parametrów (różna liczba, typy lub kolejność).
Klasa potomna może wywołać konstruktory klasy nadrzędnej, używając słowa kluczowego super(...).
Przykład przeciążania konstruktorów:
class MyClass {
int value;
String name;
// Konstruktor domyślny
public MyClass() {
this.value = 0;
this.name = "default";
// Wywołanie innego konstruktora za pomocą this()
this(0, "default");
}
// Przeciążony konstruktor z jednym parametrem
public MyClass(int value) {
this.value = value;
this.name = "default";
}
// Przeciążony konstruktor z dwoma parametrami
public MyClass(int value, String name) {
this.value = value;
this.name = name;
}
}