Különbség az absztrakt osztály és az örökség között

Anonim

Absztrakt osztály és öröklés

Absztrakt osztály és örökség két fontos objektumorientált koncepció megtalálható sok objektumorientált programozási nyelvben, mint a Java. Az absztrakt osztály a rendszeres (konkrét) osztály absztrakt változatának tekinthető, míg az öröklés lehetővé teszi az új osztályok számára, hogy más osztályokat is kiterjesszenek. Az absztrakt osztály olyan osztály, amelyet nem lehet inicializálni, de bővíthető. Tehát absztrakt osztályok csak akkor érdemesek, ha a programnyelv támogatja az örökséget. A Java-ban az Absztrakt osztályok az Absztrakt kulcsszó használatával kerülnek deklarálásra, míg a Kulcsszó kiterjesztése egy (szuper) osztályból származik.

Mi az absztrakt osztály?

Tipikusan az Absztrakt osztályok (Absztrakt bázis osztályok) (ABC) nem instantiáltak (az adott osztály egy példányát nem lehet létrehozni). Tehát az absztrakt osztályok csak akkor értelmezhetőek, ha a programozási nyelv támogatja az öröklést (az alkategóriák létrehozásának képessége az osztály kiterjesztéséről). Az absztrakt osztályok általában absztrakt koncepciót vagy entitást jelentenek, részben vagy teljesen végrehajtva. Ezért az absztrakt osztályok olyan anyaosztályokként működnek, amelyekből gyermekosztályok származnak, hogy a gyermek osztály megoszthassa a szülők osztályának hiányos funkcióit, és kiegészítheti azokat.

Absztrakt osztályok tartalmazhatnak absztrakt módszereket. Az elvont osztályt kiterjesztő alosztályok végrehajthatják ezeket az (örökölt) absztrakt módszereket. Ha a gyermek osztály minden ilyen absztrakt módszert alkalmaz, akkor konkrét osztály. De ha nem így van, akkor a gyermek osztály is absztrakt osztály lesz. Ez azt jelenti, hogy amikor a programozó egy osztályt absztraktként jelölt ki, azt mondja, hogy az osztály hiányos lesz, és olyan elemekkel rendelkezik, amelyeket az örökölt alosztályoknak ki kell tölteniük. Ez egy jó módja annak, hogy két programozó között létrejöjjön egy szerződés, ami egyszerűsíti a szoftverfejlesztés során felmerülő feladatokat. A programozó, aki az örökölt kódot írja, pontosan követnie kell a metódus-definíciókat (de persze saját megvalósítását is).

Mi az örökség?

Az örökség egy objektumorientált koncepció, amely lehetővé teszi új osztályok számára további osztályok kiterjesztését. A kulcsszó kiterjesztése az örökség fogalmának végrehajtására szolgál a Java programozási nyelvben. Az örökség lényegében kód újrahasználatot tesz lehetővé, lehetővé téve egy meglévő osztály tulajdonságainak és viselkedésének újonnan definiált osztály általi kiterjesztését. Ha egy új alosztály (vagy származtatott osztály) kiterjeszti a szuperosztályt (vagy szülőosztályt), akkor az alosztály örökölni fogja a szuperosztály minden attribútumát és módját. Az alosztály választhatóan felülbírálhatja a viselkedést (új vagy kiterjesztett funkcionalitást biztosít a módszerekhez), amelyet örökölt a szülő osztály.Általában egy alosztály nem bővíthet több szuperosztályt (például Java-ban). Ezért nem használhatja a többszörös öröklés kiterjesztését. Annak érdekében, hogy többszörös öröklést kaphasson, használnia kell az interfészeket.

Mi a különbség az Absztrakt osztály és az örökség között?

Absztrakt osztályok általában absztrakt koncepciót vagy olyan entitet jelentenek, amely részben vagy teljesen végrehajtott. Az örökség lehetővé teszi az új osztályok további osztályok kiterjesztését. Mivel az absztrakt osztályokat nem lehet instantiáltatni, az örökség fogalmát az absztrakt osztályok használatához kell használni. Ellenkező esetben az Absztrakt osztály nem használ. Az absztrakt osztályok tartalmazhatnak absztrakt módszereket, és az osztály kiterjesztése esetén az összes módszer (absztrakt és beton) öröklődik. Az örökölt osztály végre tudja hajtani az összes vagy mindegyik módszert. Ha az összes absztrakt módszert nem hajtják végre, akkor ez az osztály is absztrakt osztály lesz. Egy osztály nem örökölhet több absztrakt osztályból (ez nem absztrakt osztályok önmagában, hanem az öröklés korlátozása).