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

Anonim

Absztrakt osztály vs betonosztály

A legnépszerűbb modern objektumorientált programozási nyelvek, mint a Java és C #, osztály alapúak. Az objektumorientált fogalmakat, mint például a kapszulázást, az öröklést és a polimorfizmust az osztályok használatával érik el. Az osztályok absztrakt ábrázolása a valós világ objektumainak. Az osztályok lehetnek konkrétek vagy absztraktek, attól függően, hogy mennyire voltak módszereik funkcionális megvalósítása. Egy konkrét osztály teljesen végrehajtja az összes módszerét. Az absztrakt osztály a rendszeres (konkrét) osztály korlátozott változatának tekinthető, ahol részlegesen megvalósított módszereket tartalmazhat. Tipikusan konkrét osztályokat neveznek (csak) osztályoknak.

Mi a konkrét osztály?

Az alapértelmezett osztály egy konkrét osztály. Az osztály kulcsszó meghatározza az osztályokat (például Java-ban). És általában egyszerűen csak osztályoknak nevezik (a melléknév beton nélkül). A konkrét osztályok ábrázolják a valós világ objektumok fogalmi ábrázolását. Az osztályok attribútumokkal rendelkező tulajdonságokkal rendelkeznek. Az attribútumok globális és példányváltozóként kerülnek végrehajtásra. Az osztályok módszerei képviselik vagy definiálják ezeknek az osztályoknak a viselkedését. Az osztályok módszereit és attribútumait az osztály tagjai nevezik. Általában a kapszulázást úgy érjük el, hogy az attribútumokat privát módon hozzuk létre, ugyanakkor olyan nyilvános módszereket hozunk létre, amelyek az említett attribútumok eléréséhez használhatók. Egy objektum egy osztály példánya. Az örökség lehetővé teszi a felhasználók számára, hogy osztályokat (más néven alosztályokat) hívjanak fel más osztályokból (úgynevezett szuperosztályok). A polimorfizmus lehetővé teszi a programozó számára, hogy egy osztály objektumát helyettesítse a szuperosztály egyik objektuma helyett. A probléma definíciójában szereplő főnevek általában a programban lévő osztályokká válnak. És hasonlóképpen az igék válnak módszerekká. Nyilvános, privát és védettek az osztályokhoz használt tipikus hozzáférési modifikátorok.

Mi az absztrakt osztály?

Absztrakt osztályok kijelölése absztrakt kulcsszóval (például Java-ban). Általában 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 gyermek osztályok származnak, hogy a gyermek osztály megoszthassa a szülők osztályának hiányos funkcióit és a funkciókat is kiegészítheti.

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álygá válik. 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öklési kódot írja, pontosan követnie kell a metódus-definíciókat (de persze saját végrehajtását is).

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

Absztrakt osztályok általában részleges vagy semmilyen végrehajtást. Másrészt a konkrét osztályok mindig viselkedését teljes mértékben végrehajtják. A konkrét osztályokkal ellentétben az absztrakt osztályokat nem lehet instantiáltatni. Ezért absztrakt osztályokat kell kibővíteni annak érdekében, hogy hasznosak legyenek. Az absztrakt osztályok absztrakt módszereket tartalmazhatnak, de konkrét osztályok nem. Ha egy elvont osztályt kiterjesztenek, minden módszer (absztrakt és konkrét) ö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.