Sobes.tech
Senior

Există un constructor într-o clasă abstractă?

sobes.tech AI

Răspuns de la AI

Da, într-o clasă abstractă poate exista un constructor. O clasă abstractă este o clasă care nu este destinată să creeze instanțe direct, dar poate conține o implementare, inclusiv un constructor.

Constructorul unei clase abstracte este de obicei folosit pentru a inițializa câmpuri comune sau pentru a executa logică comună, care va fi moștenită de subclase.

Exemplu în C++:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // funcție virtuală pură
protected:
    int data;
};

class Derived : public AbstractBase {
public:
    Derived(int value) : AbstractBase(value) {}
    void doSomething() override {
        // implementare
    }
};

Aici, constructorul AbstractBase este apelat din constructorul clasei derivate pentru a inițializa câmpul data. Astfel, prezența unui constructor într-o clasă abstractă este o practică normală.