Back to questions
Senior
13
Есть ли в абстрактном классе конструктор?
Companies where asked
ИП Ганус Александр Андреевич
Answer from 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. Таким образом, наличие конструктора в абстрактном классе — нормальная практика.