Sobes.tech
Senior

Hat eine abstrakte Klasse einen Konstruktor?

sobes.tech KI

Antwort von AI

Ja, eine abstrakte Klasse kann einen Konstruktor haben. Eine abstrakte Klasse ist eine Klasse, die nicht dazu bestimmt ist, direkt Instanzen zu erstellen, aber eine Implementierung enthalten kann, einschließlich eines Konstruktors.

Der Konstruktor einer abstrakten Klasse wird normalerweise verwendet, um gemeinsame Felder zu initialisieren oder gemeinsame Logik auszuführen, die von Unterklassen geerbt wird.

Beispiel in C++:

class AbstractBase {
public:
    AbstractBase(int value) : data(value) {}
    virtual void doSomething() = 0; // reine virtuelle Funktion
protected:
    int data;
};

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

Hier wird der Konstruktor AbstractBase vom Konstruktor der abgeleiteten Klasse aufgerufen, um das Feld data zu initialisieren. Daher ist das Vorhandensein eines Konstruktors in einer abstrakten Klasse eine normale Praxis.