Junior — Middle
El tudná magyarázni, mi az az absztrakt osztály, és miben különbözik egy normál osztálytól?
sobes.tech MI
Válasz az MI-től
Egy absztrakt osztály olyan osztály, amelyet nem szándékoznak közvetlen példányosítani, hanem más osztályok alapjaként szolgál. C++-ban az absztrakt osztályt legalább egy tiszta virtuális függvény jelenléte határozza meg.
Az absztrakt osztály és a normál osztály közötti különbségek:
- Nem lehet közvetlenül létrehozni egy absztrakt osztály objektumát.
- Legalább egy tiszta virtuális függvényt tartalmaz, amelyet az örökölt osztályoknak kell megvalósítaniuk.
- Az interfész és az általános funkcionalitás meghatározására szolgál, amelyet az alosztályoknak örökölniük kell.
Példa:
class AbstractBase {
public:
virtual void doSomething() = 0; // tiszta virtuális függvény
};
class Derived : public AbstractBase {
public:
void doSomething() override {
// megvalósítás
}
};
// AbstractBase obj; // hiba, nem lehet absztrakt osztály példányát létrehozni
Derived d; // helyes