Senior
25
Есть ли в абстрактном классе конструктор?
Сұралған компаниялар
ИП Ганус Александр Андреевич
AI-дан жауап
sobes.tech AI
Да, в абстрактном классе может быть конструктор. Абстрактный класс — это класс, который не предназначен для создания экземпляров напрямую, но может содержать реализацию, включая конструктор.
Конструктор абстрактного класса обычно используется для инициализации общих полей или выполнения общей логики, которая будет унаследована подклассами.
Пример на 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. Таким образом, наличие конструктора в абстрактном классе — нормальная практика.