Bevezetés a C ++ felülbírálásába
A C ++ -ban történő felülbírálás az egyik módszer a futási idő polimorfizmusának elérésére, amelynek során ugyanazon módszer viselkedését módosítjuk. Általában véve, a gyermekosztály az alaposztálytól örökli a tagfunkciókat és az adattagokat. De amikor szükségünk van a gyermek osztályban a funkciók felülbírálására, akkor a funkció felülírását kell alkalmaznunk. A felülbírálás kiváltságot biztosít azoknak a metódusoknak, amelyeknek azonos neve van mind az alaposztályban, mind a származtatott osztályban. Lehetővé teszi számunkra, hogy szükség szerint változtassuk meg az alaposztályban, a származtatott osztályokban jelen lévő funkcionális viselkedést.
Hogyan működik a felülbírálás a C ++-ban?
Mielőtt megértenénk a felülírást, először értjük meg a polimorfizmust. A polimorfizmus szó szerinti jelentése sokféle, azaz egy adott dolog több formája. Objektum-orientált programozási nyelven ez az egyik hasznos szolgáltatás. Az öröklés során a polimorfizmus függvény vagy módszer felülbírálásával érhető el, amikor mind az alap, mind a származtatott osztályok azonosak a tagfüggvény deklarációjával, de definíciójuk eltérő lesz.
Ehhez először az osztályt a származtatott osztályba kell örökölnünk. Ezután szükség szerint különféle meghatározásokat kell adnunk, az alap osztály osztályának bármelyikére, ismét a származtatott osztályon belül. Csak akkor azt mondják, hogy ezt a funkciót felülbírálják, és ezt a lépésről lépésre folyamatot hívják Funkció felülbírálása.
Tegyük fel például, hogy egy olyan forgatókönyvet veszünk igénybe, amelyben alkalmazásunknak meg kell változtatnia az alap osztály módszer viselkedését egy származtatott osztályban, akkor a felülbírálás jellemzőjét kell használnunk . Annak érdekében, hogy felülbíráljuk a függvényt a származtatott osztályban, ugyanazzal az aláírással kell rendelkeznünk a gyermekosztályban, valamint a függvényneveknek azonosaknak kell lenniük mind az alapban, mind a származtatott osztályokban. Az aláírás itt ugyanannak az adattípusnak és a függvényben átadandó paraméterek sorozatának használatát jelenti. Ha nincs szükség paraméterekre, akkor sem az alapfunkcióban, sem a gyermekfunkcióban nem szabad semmilyen paramétert használni. Az alábbiakban találunk néhány pontot, amelyeket szem előtt kell tartanunk, mielőtt az elsőbbséget élveznénk.
- A C ++ programozás során a felülbírálás példája a futási idő polimorfizmusának vagy a dinamikus polimorfizmusnak.
- A felülbírálás csak a származtatott osztályokban jelen levő módszereknél lehetséges, mivel egy módszer felülbírálásra kerül az alaposztály származtatott osztályában.
- A felülbírálás elérése érdekében az alap- és az abból származtatott osztályokban jelen lévő funkcióknak azonos névvel, azonos visszatérési típussal és azonos paraméterekkel kell rendelkezniük.
A felülírási nyilatkozat által felülbírált módszert úgy hívják, hogy felülbírált alap módszer. Az alap osztály tartalmazza ezt a módszert. A friss implementáció, az úgynevezett felülbíráló módszer végrehajtása ettől az alaposztálytól származik. Amikor létrehozunk egy származtatott osztály objektumát, és meghívjuk a tag függvényt, amely létezik mind az alap, mind a származtatott osztályban, akkor az alap osztály tagfüggvényét figyelmen kívül hagyjuk, és a származtatott osztály tag funkcióját hívjuk fel.
Az alábbiakban bemutatjuk a módszer felülbírálására vonatkozó követelményeket:
- Az első és legfontosabb dolog az öröklődésnek bázisról származtatott osztályra kell lennie, mivel a funkció felülbírálását nem lehet ugyanazon osztályon belül elvégezni. Ennek eléréséhez alap- és származtatott osztályra van szükségünk.
- Az újradefiniált függvénynek pontosan ugyanazzal a deklarációval kell rendelkeznie, mind az alap, mind a származtatott osztályokban. Az mit jelent? Ez azt jelenti, hogy a funkcióknak azonos névvel, azonos aláírással és azonos paraméterlistával kell rendelkezniük.
Példa a felülbírálásra
Kód
class Animal
(
public:
void Message ( )
(
cout << "Hello there!! I am Animal";
)
);
class Dog: public Animal
(
public:
void Message ( )
(
cout << "I am Dog!!";
)
)
A fenti példában az Message () függvény felülkerül a származtatott osztályban.
Példa a lépésekkel
1. Vessen egy pillantást a main () függvényt használó példára, hogy jobban megértsük a felülírást.
2. Hozzon létre egy alaposztályt bármilyen névvel. Itt állatokat használom. Írjon módszert egy megjelenítendő üzenet megjelenítésére. Ez lesz a felülbírált módszerünk, amelyet felülírunk az örökölt osztályban. Írjon be egy módszert a nyomtatáshoz.
class Animal
(
public void Message( )
(
cout << "Hello there!! I am Animal";
)
)
3. Most hozzon létre egy újabb osztályú kutyát. Ezúttal azt az alaposztálytól örököljük, amelyet korábban hoztunk létre, azaz az Állatokat. Az örökléshez a ':' szimbólumot használjuk.
class Dog: public Animal
4. Itt ugyanazt az Üzenet () függvényt deklaráljuk a különböző megvalósításokhoz, és írunk egy üzenetet. Győződjön meg arról, hogy a származtatott osztály metódus neve és aláírása megegyezik az alap osztály metódus nevével és aláírásával.
public void Message ( )
(
cout << "Hey!! I am Dog";
)
5. Szükségünk van még egy osztályra a funkció végrehajtásához, hogy ellenőrizzük a felülbírálást. Hozzon létre egy osztályt bármilyen névvel. Azon belül írja be a Fő funkciót.
class ExecutionClass
(
int Main( )
(
)
)
6. Hozzon létre egy objektumot a szülő osztályból, és az osztály objektumával aktiválja a függvényt. Ez meghívja az Animal osztályban lévõ Message módszert.
Animal animalObject;
animalObject.Message( );
7. Most hozza létre a származtatott osztály objektumát, és hívja az Üzenet metódust. Ez meghívja a Kutya osztály Üzenet módszerét.
Dog dogObject;
dogObject.Message( );
8. Mi lesz a kód kimenete? Meg tudja tippelni? Ez az alább látható.
Kimenet:
9. A fenti példában ugyanazt a nevet és aláírást hívjuk a függvényre, a származtatott és az alaposztály számára külön létrehozott objektum felhasználásával. Mindkét esetben a függvény különféle verzióit kell meghívni az alap és a származtatott osztály számára.
Következtetés
Ebben a cikkben megértettük a C ++ alkalmazásában felülbíráló módszert, a módszer felülbírálásának szükségességét, a felülíró elv valós példáit, az elérés módját és a kód használatának felülbírálásának példáját. Megállapíthatjuk, hogy a felülbírálás a C ++ polimorfizmus egyik hasznos tulajdonsága, amelyben megváltoztathatjuk az alap osztály módszer viselkedését a származtatott osztályban.
Ajánlott cikkek
Ez egy útmutató a C ++ felülbírálására. Itt tárgyaljuk, hogy a C ++ felülbírálása hogyan működik, egy egyszerű példa, különböző lépésekkel. Megnézheti más kapcsolódó cikkeinket, hogy többet megtudjon-
- Tömbök C ++-ban
- Bevezetés a C ++ -ba
- C ++ parancsok
- Másoló konstruktor C ++-ban
- Útmutató az OOP-k felülbírálásához
- A Java alapon érvényes