Introducere în suprasolicitarea în C ++

Suprasolicitarea în C ++ este una dintre modalitățile de realizare a polimorfismului în timp de rulare, în care modificăm comportamentul aceleiași metode. În general, clasa copil moștenește funcțiile de membru și datele membrilor de la clasa de bază. Dar când nevoia noastră este să înlocuim funcționalitatea din clasa de copii, atunci trebuie să utilizăm o suprasolicitare a funcțiilor. Suprasolicitarea oferă un privilegiu metodelor de a avea același nume atât în ​​clasa de bază, cât și în clasa derivată. Ne permite să schimbăm comportamentul funcțional prezent în clasa de bază, în clasele derivate în funcție de nevoia noastră.

Cum funcționează suprapunerea în C ++?

Înainte de a înțelege suprasolicitarea, să înțelegem mai întâi polimorfismul. Sensul literal al polimorfismului este multe forme, adică având mai multe forme ale unui lucru particular. Într-un limbaj de programare orientat pe obiecte, aceasta este una dintre caracteristicile utile. În moștenire, polimorfismul se realizează, prin funcție sau metodă, peste care clasele de bază și cele derivate au aceeași declarație de funcție de membru, dar definiția lor va fi diferită.

Pentru a face acest lucru, mai întâi trebuie să moștenim de la o clasă în clasa derivată. Atunci ar trebui să oferim definiții diferite în funcție de necesitate, pentru oricare dintre metodele clasei de bază din nou în cadrul clasei derivate. Numai atunci, se spune că funcția este suprasolicitată, iar acest proces pas cu pas se numește funcție Suprascriere.

Să presupunem să luăm un scenariu în care aplicația noastră are cerința de a schimba comportamentul metodei clasei de bază într-o clasă derivată, atunci ar trebui să utilizăm caracteristica de suprasolicitare . Pentru a trece peste o funcție din clasa derivată, trebuie să avem aceeași semnătură în clasa copil, de asemenea numele funcțiilor ar trebui să fie aceleași atât în ​​baze cât și în clase derivate. Aici semnătura înseamnă utilizarea aceluiași tip de date și secvență de parametri care trebuie trecuți în funcție. Dacă nu este nevoie de parametri, atunci nu trebuie să utilizăm niciun parametru în funcția de bază, precum și funcția copil. Mai jos avem câteva puncte de care trebuie să ținem cont înainte de a folosi suprasolicitarea.

  • În programarea C ++, suprasolicitarea va fi un exemplu de polimorfism timp de execuție sau polimorfism dinamic.
  • Suprasolicitarea este posibilă numai în metodele prezente în clasele derivate, deoarece o metodă este suprasolicitată în clasa derivată din clasa de bază.
  • Pentru a realiza o suprasolicitare, funcțiile prezente în clasele de bază și derivate ar trebui să aibă același nume, același tip de returnare și aceiași parametri.

Metoda care este anulată prin declarația de anulare se numește metoda bazei suprasolicitate. Clasa de bază va conține această metodă. Implementarea proaspătă numită, metoda de înlocuire este moștenită de la această clasă de bază. Când creăm un obiect al clasei derivate și apelăm funcția de membru care există atât în ​​clasele de bază cât și în cele derivate, funcția de membru a clasei de bază va fi ignorată și funcția de membru a clasei derivate va fi invocată.

Mai jos sunt cerințele pentru Metoda Suprascriere:

  • Primul și cel mai important lucru este moștenirea ar trebui să fie acolo de la bază la clasă derivată, deoarece suprasolicitarea funcțiilor nu se poate face în cadrul aceleiași clase. Pentru a realiza acest lucru, avem nevoie de o clasă de bază și o clasă derivată.
  • Funcția redefinită ar trebui să aibă exact aceeași declarație atât în ​​clasele de bază, cât și în cele derivate. Ce inseamna asta? Aceasta înseamnă că funcțiile ar trebui să aibă același nume, aceeași semnătură și aceeași listă de parametri.

Exemplu de suprasolicitare

Cod

class Animal
(
public:
void Message ( )
(
cout << "Hello there!! I am Animal";
)
);
class Dog: public Animal
(
public:
void Message ( )
(
cout << "I am Dog!!";
)
)

În exemplul de mai sus, funcția Message () este suprasolicitată în clasa derivată.

Exemplu cu Pași

1. Haideți să aruncăm o privire la exemplul folosind funcția principală () pentru a înțelege mai bine supraviețuirea.

2. Creați o clasă de bază cu orice nume. Aici folosesc Animal. Scrieți o metodă pentru a afișa un mesaj care trebuie afișat. Aceasta va fi metoda noastră suprasolicitată pe care o vom trece peste clasa moștenită. În interiorul metodei scrieți un mesaj pentru a tipări.

class Animal
(
public void Message( )
(
cout << "Hello there!! I am Animal";
)
)

3. Creează acum încă un câine de clasă. De data aceasta o vom moșteni de la clasa de bază pe care am creat-o mai devreme, adică Animal. Pentru moștenire folosim simbolul „:”.

class Dog: public Animal

4. Aici declaram aceeași funcție Message () pentru implementare diferită și scriem un mesaj. Asigurați-vă că numele metodei și semnătura din clasa derivată se potrivesc cu numele metodei și semnătura din clasa de bază.

public void Message ( )
(
cout << "Hey!! I am Dog";
)

5. Avem nevoie de încă o clasă pentru a executa funcționalitatea pentru a verifica suprasolicitarea. Creați o clasă cu orice nume. În interior, scrieți funcția principală.

class ExecutionClass
(
int Main( )
(
)
)

6. Creează un obiect al clasei părinte și declanșează funcția folosind obiectul clasei. Aceasta va invoca metoda Mesaj prezentă în clasa Animal.

Animal animalObject;
animalObject.Message( );

7. Creați acum obiectul clasei derivate și apelați la metoda Mesaj. Aceasta va invoca metoda Mesaj din clasa Dog.

Dog dogObject;
dogObject.Message( );

8. Care va fi rezultatul acestui cod? Puteți ghici? Acest lucru este după cum se arată mai jos.

ieşire:

9. În exemplul de mai sus, apelăm funcția cu același nume și semnătura, folosind un obiect creat separat pentru clasa derivată și baza. În ambele cazuri, versiuni diferite ale funcției vor fi apelate pentru clasa de bază și derivată.

Concluzie

În acest articol, am înțeles metoda care depășește C ++, necesitatea ca metoda să se suprapună, exemple reale ale principiului de suprapunere, modalitatea de realizare a acestuia și exemplul suprasolicitării folosind codul. Putem concluziona că suprasolicitarea este una dintre caracteristicile utile în polimorfism în C ++ în care putem schimba comportamentul clasei de bază din clasa derivată.

Articole recomandate

Acesta este un ghid de suprasolicitare în C ++. Aici vom discuta despre modul în care funcționează Supraveghere în C ++, un exemplu simplu cu pași diferiți. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-

  1. Arătări în C ++
  2. Introducere în C ++
  3. Comenzi C ++
  4. Copiați constructorul în C ++
  5. Ghid de suprasolicitare în POS
  6. Suprasolicitare în Java