Sobes.tech
Senior

¿Tiene un constructor en una clase abstracta?

sobes.tech AI

Respuesta de la IA

Sí, una clase abstracta puede tener un constructor. Una clase abstracta es una clase que no está destinada a crear instancias directamente, pero puede contener una implementación, incluyendo un constructor.

El constructor de una clase abstracta generalmente se usa para inicializar campos comunes o realizar lógica común que será heredada por las subclases.

Ejemplo en C++:

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

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

Aquí, el constructor AbstractBase se llama desde el constructor de la clase derivada para inicializar el campo data. Por lo tanto, tener un constructor en una clase abstracta es una práctica normal.