Sobes.tech
Senior

Existuje v abstraktní třídě konstruktor?

sobes.tech AI

Odpověď od AI

Ano, abstraktní třída může mít konstruktor. Abstraktní třída je třída, která není určena k přímému vytváření instancí, ale může obsahovat implementaci, včetně konstruktoru.

Konstruktor abstraktní třídy se obvykle používá k inicializaci společných polí nebo k provádění společné logiky, která bude děděna podtřídami.

Příklad v C++:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // čistá virtuální funkce
protected:
    int data;
};

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

Zde je konstruktor AbstractBase volán z konstruktoru odvozené třídy k inicializaci pole data. Přítomnost konstruktoru v abstraktní třídě je tedy běžnou praxí.