Sobes.tech
Senior

C'è un costruttore in una classe astratta?

sobes.tech AI

Risposta dell'AI

Sì, una classe astratta può avere un costruttore. Una classe astratta è una classe che non è destinata a creare istanze direttamente, ma può contenere un'implementazione, incluso un costruttore.

Il costruttore di una classe astratta viene generalmente usato per inizializzare campi comuni o eseguire logica comune che sarà ereditata dalle sottoclassi.

Esempio in C++:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // funzione virtuale pura
protected:
    int data;
};

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

Qui, il costruttore AbstractBase viene chiamato dal costruttore della classe derivata per inizializzare il campo data. Quindi, la presenza di un costruttore in una classe astratta è una pratica normale.