Sobes.tech
Senior

Abstrakt sinfda konstruktor bormi?

sobes.tech AI

AIdan javob

Ha, abstrakt sinfda konstruktor bo'lishi mumkin. Abstrakt sinf, to'g'ridan-to'g'ri nusxa olish uchun mo'ljallanmagan sinf bo'lib, unda konstruktor ham bo'lishi mumkin.

Abstrakt sinfning konstruktorlari odatda umumiy maydonlarni boshlash yoki umumiy logikani bajarish uchun ishlatiladi, bu meros qilib olinadigan subklasslar tomonidan amalga oshiriladi.

C++ misoli:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // toza virtual funktsiya
protected:
    int data;
};

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

Bu yerda, AbstractBase konstruktorini meros oluvchi sinf konstruktoridan chaqiriladi, bu data maydonini boshlash uchun. Shuning uchun, abstrakt sinfda konstruktor bo'lish odatiy amaliyotdir.