Senior
Van-e konstruktor az absztrakt osztályban?
sobes.tech MI
Válasz az MI-től
Igen, egy absztrakt osztálynak lehet konstruktorja. Egy absztrakt osztály olyan osztály, amely nem szándékozik közvetlen példányokat létrehozni, de tartalmazhat megvalósítást, beleértve a konstruktort is.
Az absztrakt osztály konstruktorát általában arra használják, hogy közös mezőket inicializáljanak vagy közös logikát hajtsanak végre, amelyet az alosztályok örökölnek.
Példa C++-ban:
class AbstractBase {
public:
AbstractBase(int value) : data(value) {}
virtual void doSomething() = 0; // tiszta virtuális függvény
protected:
int data;
};
class Derived : public AbstractBase {
public:
Derived(int value) : AbstractBase(value) {}
void doSomething() override {
// implementáció
}
};
Itt az AbstractBase konstruktorát a származtatott osztály konstruktorából hívják, hogy inicializálják a data mezőt. Ezért a konstruktor megléte egy absztrakt osztályban normális gyakorlat.