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

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

Videó: Különbség az absztrakt osztály és a konkrét osztály között

Videó: Különbség az absztrakt osztály és a konkrét osztály között
Videó: Proxy vs VPN vs DNS 2024, November
Anonim

Absztrakt osztály kontra konkrét osztály

A legtöbb népszerű modern objektumorientált programozási nyelv, mint például a Java és a C, osztályalapú. Osztályok használatával érik el az objektum-orientált fogalmakat, mint például a tokozás, az öröklődés és a polimorfizmus. Az osztályok a valós világ objektumainak absztrakt reprezentációi. Az osztályok lehetnek konkrétak vagy absztraktak, attól függően, hogy a metódus funkciói milyen szinten vannak megvalósítva. Egy konkrét osztály teljesen megvalósítja az összes metódusát. Az absztrakt osztály egy reguláris (konkrét) osztály korlátozott változatának tekinthető, ahol részben implementált metódusokat tartalmazhat. A konkrét osztályokat általában (csak) osztályoknak nevezik.

Mi az a betonosztály?

Az alapértelmezett osztály egy konkrét osztály. A class kulcsszó az osztályok meghatározására szolgál (pl. Java nyelven). És általában egyszerűen csak osztályoknak nevezik őket (a konkrét jelző nélkül). A konkrét osztályok a valós világ objektumainak fogalmi ábrázolását ábrázolják. Az osztályoknak attribútumoknak nevezett tulajdonságaik vannak. Az attribútumok globális és példányváltozóként valósulnak meg. Az osztályokban lévő metódusok képviselik vagy meghatározzák ezen osztályok viselkedését. Az osztályok metódusait és attribútumait az osztály tagjainak nevezzük. A beágyazást általában úgy érik el, hogy az attribútumokat priváttá teszik, miközben nyilvános metódusokat hoznak létre, amelyekkel az attribútumok elérhetők. Az objektum egy osztály példánya. Az öröklődés lehetővé teszi a felhasználó számára az osztályok (úgynevezett alosztályok) kiterjesztését más osztályokból (úgynevezett szuperosztályokból). A polimorfizmus lehetővé teszi a programozó számára, hogy egy osztály objektumát helyettesítse a szuperosztályának objektumával. Általában a problémameghatározásban található főnevek közvetlenül osztályokká válnak a programban. És ehhez hasonlóan az igék módszerekké válnak. Nyilvános, privát és védett az osztályokhoz használt tipikus hozzáférés-módosítók.

Mi az absztrakt osztály?

Az absztrakt osztályokat az Abstract kulcsszó használatával deklarálják (például Java nyelven,). Az absztrakt osztályok, más néven Abstract Base Classes (ABC), általában nem példányosítható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ődést (alosztályok létrehozásának képességét egy osztály kiterjesztésével). Az absztrakt osztályok általában egy absztrakt fogalmat vagy entitást képviselnek, részben vagy egyáltalán nem implementálva. Ezért az absztrakt osztályok szülőosztályokként működnek, amelyekből a leszármazott osztályok származnak, így az utódosztály megosztja a szülőosztály hiányos jellemzőit, és funkcionalitást lehet hozzáadni a teljesítésükhöz.

Az absztrakt osztályok tartalmazhatnak absztrakt metódusokat. Az absztrakt osztályt kiterjesztő alosztályok megvalósíthatják ezeket az (öröklött) absztrakt metódusokat. Ha a gyermekosztály az összes ilyen absztrakt metódust megvalósítja, akkor konkrét osztály lesz belőle. De ha nem, akkor a gyermekosztály is absztrakt osztály lesz. Mindez azt jelenti, hogy amikor a programozó kijelöl egy osztályt absztraktnak, azt mondja, hogy az osztály hiányos lesz, és olyan elemei lesznek, amelyeket az örökös alosztályoknak ki kell egészíteniük. Ez egy jó módja annak, hogy szerződést kössön két programozó között, ami leegyszerűsíti a szoftverfejlesztési feladatokat. A programozónak, aki kódot ír az öröklésre, pontosan követnie kell a metódusdefiníciókat (de természetesen lehet saját implementációja).

Mi a különbség az absztrakt osztály és a konkrét osztály között?

Az absztrakt osztályok általában részlegesen vagy egyáltalán nem valósulnak meg. Másrészt a konkrét osztályok mindig teljes mértékben megvalósítják a viselkedését. A konkrét osztályokkal ellentétben az absztrakt osztályokat nem lehet példányosítani. Ezért az absztrakt osztályokat ki kell bővíteni, hogy hasznosak legyenek. Az absztrakt osztályok tartalmazhatnak absztrakt metódusokat, de a konkrét osztályok nem. Ha egy absztrakt osztályt kiterjesztünk, az összes metódus (mind az absztrakt, mind a konkrét) öröklődik. Az örökölt osztály bármely vagy az összes metódust megvalósíthatja. Ha az összes absztrakt metódus nincs implementálva, akkor ez az osztály is absztrakt osztály lesz.

Ajánlott: