Sobes.tech
Senior

Existe um construtor numa classe abstrata?

sobes.tech IA

Resposta da IA

Sim, uma classe abstrata pode ter um construtor. Uma classe abstrata é uma classe que não é destinada a criar instâncias diretamente, mas pode conter uma implementação, incluindo um construtor.

O construtor de uma classe abstrata geralmente é usado para inicializar campos comuns ou executar lógica comum que será herdada por subclasses.

Exemplo em C++:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // função virtual pura
protected:
    int data;
};

class Derived : public AbstractBase {
public:
    Derived(int value) : AbstractBase(value) {}
    void doSomething() override {
        // implementação
    }
};

Aqui, o construtor AbstractBase é chamado a partir do construtor da classe derivada para inicializar o campo data. Assim, ter um construtor em uma classe abstrata é uma prática normal.