Senior
Czy w klasie abstrakcyjnej jest konstruktor?
sobes.tech AI
Odpowiedź od AI
Tak, klasa abstrakcyjna może mieć konstruktor. Klasa abstrakcyjna to klasa, która nie jest przeznaczona do tworzenia bezpośrednich instancji, ale może zawierać implementację, w tym konstruktor.
Konstruktor klasy abstrakcyjnej jest zwykle używany do inicjalizacji wspólnych pól lub wykonywania wspólnej logiki, która będzie dziedziczona przez podklasy.
Przykład w C++:
class AbstractBase {
public:
AbstractBase(int value) : data(value) {}
virtual void doSomething() = 0; // czysto wirtualna funkcja
protected:
int data;
};
class Derived : public AbstractBase {
public:
Derived(int value) : AbstractBase(value) {}
void doSomething() override {
// implementacja
}
};
Tutaj konstruktor AbstractBase jest wywoływany z konstruktora klasy pochodnej w celu inicjalizacji pola data. Dlatego posiadanie konstruktora w klasie abstrakcyjnej jest normalną praktyką.