Absztrakt osztály vs örökség
Az absztrakt osztály és az öröklés két fontos objektum-orientált fogalom, amelyek sok objektum-orientált programozási nyelven megtalálhatók, mint például a Java. Az absztrakt osztály a rendes (konkrét) osztály elvont változatának tekinthető, míg az öröklődés lehetővé teszi az új osztályok számára, hogy más osztályokat kibővítsenek. Az absztrakt osztály olyan osztály, amelyet nem lehet inicializálni, de meg lehet hosszabbítani. Tehát az absztrakt osztályoknak csak akkor van értelme, ha a programozási nyelv támogatja az öröklést. A Java-ban az absztrakt osztályokat az absztrakt kulcsszó használatával deklarálják, míg az Extens kulcsszót egy (szuper) osztálytól való örökléshez használják.
Mi az absztrakt osztály??
Általában az absztrakt osztályok, más néven absztrakt alaposztályok (ABC) is nem realizálhatók (az osztály példánya nem hozható létre). Tehát az absztrakt osztályoknak csak akkor van értelme, ha a programozási nyelv támogatja az öröklést (képesség alosztályok létrehozására az osztály kiterjesztéséből). Az absztrakt osztályok általában egy elvont fogalmat vagy entitást képviselnek, részleges vagy nem megvalósított formában. Ezért az absztrakt osztályok szülőosztályként működnek, ahonnan a gyermek osztályok származnak, így a gyermek osztály megosztja a szülő osztály hiányos tulajdonságait, és kiegészíthető a funkciók kiegészítésükhöz..
Az absztrakt osztályok tartalmazhatnak absztrakt módszereket. Az elvont osztályt kiterjesztő alosztályok megvalósíthatják ezeket (örökölt) absztrakt módszereket. Ha a gyermekosztály végrehajtja az összes ilyen absztrakt módszert, akkor ez egy konkrét osztály. De ha nem, akkor a gyermekosztály absztrakt osztálytá válik. Mindez azt jelenti, hogy amikor a programozó osztályt jelöl absztraktnak, azt mondja, hogy az osztály hiányos lesz, és olyan elemekkel fog rendelkezni, amelyeket az öröklő alosztályoknak ki kell tölteniük. Ez egy jó módszer a két programozó közötti szerződés megkötésére, amely egyszerűsíti a szoftverfejlesztés feladatait. A programozónak, aki az örökítéshez kódot ír, pontosan követnie kell a módszer meghatározásait (de természetesen megvan a maga megvalósítása).
Mi az örökség??
Az öröklés egy objektumorientált koncepció, amely lehetővé teszi az új osztályok számára, hogy kiterjesszék más osztályokat. Az Extens kulcsszó az öröklés fogalmának a Java programozási nyelvben történő megvalósításához szolgál. Az öröklés alapvetően a kód újbóli felhasználását biztosítja azáltal, hogy lehetővé teszi a meglévő osztály tulajdonságainak és viselkedésének kibővítését egy újonnan meghatározott osztály által. Amikor egy új alosztály (vagy származtatott osztály) kibővíti a szuper osztályt (vagy szülő osztályt), akkor az alosztály örökli a szuper osztály összes attribútumát és módszerét. Az alosztály opcionálisan felülbírálhatja a szülőosztálytól örökölt viselkedést (új vagy kibővített funkcionalitást biztosíthat a módszerekhez). Általában egy alosztály nem terjesztheti ki több szuper osztályt (például Java-ban). Ezért nem használhat kiterjesztéseket több örökléshez. A többszörös öröklés érdekében interfészeket kell használni.
Mi a különbség az absztrakt osztály és az öröklés között??
Az absztrakt osztályok általában egy elvont fogalmat vagy egy entitást képviselnek, részleges vagy végrehajtás nélküli. Az öröklés lehetővé teszi, hogy az új osztályok kiterjesszék más osztályokat. Mivel az absztrakt osztályokat nem lehet pillanatra készíteni, az absztrakt osztályok használatához az öröklés fogalmát kell használni. Egyébként az absztrakt osztálynak nincs értelme. Az absztrakt osztályok tartalmazhatnak absztrakt módszereket, és amikor az osztály kibővül, az összes módszer (absztrakt és konkrét) örökölhető. Az örökölt osztály bármelyik módszert vagy az összes módszert megvalósíthatja. Ha az összes absztrakt módszert nem valósítják meg, akkor az osztály absztrakt osztály lesz. Az osztály nem egynél több absztrakt osztálytól örökölhet (ez önmagában nem az absztrakt osztályok minősége, hanem az öröklés korlátozása).