Sobes.tech
Senior

Da li postoji konstruktor u apstraktnoj klasi?

sobes.tech АИ

Одговор од АИ

Да, апстрактна класа може да има конструктор. Апстрактна класа је класа која није намењена за директно креирање инстанци, али може садржати имплементацију, укључујући и конструктор.

Конструктор апстрактне класе обично се користи за иницијализацију заједничких поља или извршавање заједничке логике која ће бити наследјена од стране подкласа.

Пример у C++:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // чиста виртуелна функција
protected:
    int data;
};

class Derived : public AbstractBase {
public:
    Derived(int value) : AbstractBase(value) {}
    void doSomething() override {
        // имплементација
    }
};

Овде, конструктор AbstractBase се позива из конструктора подкласе за иницијализацију поља data. Стога, присуство конструктора у апстрактној класи је нормална пракса.