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-

  1. Tömbök C ++-ban
  2. Bevezetés a C ++ -ba
  3. C ++ parancsok
  4. Másoló konstruktor C ++-ban
  5. Útmutató az OOP-k felülbírálásához
  6. A Java alapon érvényes

Kategória: