Jedno nasljeđivanje nasuprot višestrukom nasljeđivanju

Autor: Laura McKinney
Datum Stvaranja: 4 Travanj 2021
Datum Ažuriranja: 10 Svibanj 2024
Anonim
Multiple Inheritance in C++ with Ambiguity & Resolution | C++ programming for Beginners
Video: Multiple Inheritance in C++ with Ambiguity & Resolution | C++ programming for Beginners

Sadržaj

Ključna razlika između pojedinačnog i višestrukog nasljeđivanja jest da u pojedinačnom nasljeđivanju izvedena klasa nasljeđuje samo jednu osnovnu klasu dok u višestrukom nasljeđivanju izvedena klasa nasljeđuje više od jedne osnovne klase.


Nasljeđivanje je jedan od najvažnijih koncepata u OOP-u koji je objektno orijentirano programiranje. Koncept ponovne upotrebe podržava se u nasljeđivanju. Ponovna upotreba znači da nova klasa ponovno koristi svojstva već postojeće klase. U izvedenoj klasi nasljeđivanja nasljeđuje osnovnu klasu i pristup, određivač odlučuje koji će član osnovne klase biti nasljedan. Postoje vrste nasljeđivanja koje su jedno nasljedstvo, hijerarhijsko nasljeđivanje, višeslojno nasljeđivanje i hibridno nasljeđivanje. U pojedinačnom nasljeđivanju izvedena klasa nasljeđuje samo jednu osnovnu klasu dok u višestrukom nasljeđivanju izvedena klasa nasljeđuje više od jedne osnovne klase.

Postoji samo jedna izvedena klasa koja je naslijeđena od osnovne klase. Postoje tri načina nasljeđivanja osnovne klase koja je javna, zaštićena i privatna. Specifikator pristupa koristi se za nasljeđivanje osnovne klase. Razlog za pojedinačno nasljeđivanje jest nasljeđivanje svojstava i ponašanja iz jedne roditeljske klase. Glavna svrha objektno orijentiranog programiranja, odnosno ponovna upotreba koda, ostvaruje se jednim nasljeđivanjem. Ako pojedinačno nasljeđivanje govorimo u usporedbi s višestrukim nasljeđivanjem nego pojedinačno nasljeđivanje, mora se lakše u usporedbi s višestrukim nasljeđivanjem. Poništavanje funkcije koristi se u pojedinačnom nasljeđivanju. Polimorfizam u tijeku rada poznat je kao prevladavajući. Nadjačavanje se postiže korištenjem funkcionalne ključne riječi koja je virtualna. Ova se ključna riječ koristi u osnovnoj klasi. Kad izvedena klasa redefinira funkciju, presvučena funkcija se ne može promijeniti. Prekoračenje u C ++ određuje onu verziju funkcije koja se zove. Pojedinačno nasljeđivanje koristi se na jezicima C ++, Java, PHP, C # i vizualno.


Višestruko nasljeđivanje omogućuje dobivanje više od jedne osnovne klase, to znači da možete dobiti svojstva više od jedne osnovne klase. Možemo imati jednu izvedenu klasu i više osnovnih razreda. Bazna klasa nasljeđuje se spominjanjem posebnog specifičara pristupa. Višestruko nasljeđivanje ima simetrično spajanje i asimetrično proširenje. Kad postoji uzorak adaptera, koristi se višestruko nasljeđivanje. Višestruko nasljeđivanje koristi se u C ++, Python, Perl, Eiffel, Dylan, Curl, Eulisp, Tcl. Provedba koda za više nasljeđivanja složeno je u usporedbi s pojedinačnim nasljeđivanjem.

Sadržaj: Razlika između pojedinačnog nasljeđivanja i višestrukog nasljeđivanja

  • Usporedni grafikon
  • Jedno nasljeđivanje
  • Višestruko nasljeđivanje
  • Ključne razlike
  • Zaključak
  • Objašnjeni video

Usporedni grafikon

osnovaJedno nasljeđivanjeVišestruko nasljeđivanje
Značenje U pojedinačnom nasljeđivanju izvedena klasa nasljeđuje samo jednu osnovnu klasu

U višestrukom nasljeđivanju izvedena klasa nasljeđuje više od jedne osnovne klase.


 

SefPojedinačno nasljeđivanje sigurnije je od višestrukog nasljeđivanjaVišestruko nasljeđivanje nije sigurno provesti
PristupU pojedinačnom nasljeđivanju obilježja jednog razreda se nasljeđujuU višestrukom nasljeđivanju mogu se naslijediti značajke više klasa
dužina trajanja Pojedinačno nasljeđivanje zahtijeva više vremena izvođenjaVišestruko nasljeđivanje zahtijeva manje vremena

Jedno nasljeđivanje

Postoji samo jedna izvedena klasa koja je naslijeđena od osnovne klase. Postoje tri načina nasljeđivanja osnovne klase koja je javna, zaštićena i privatna. Specifikator pristupa koristi se za nasljeđivanje osnovne klase. Razlog za pojedinačno nasljeđivanje jest nasljeđivanje svojstava i ponašanja iz jedne roditeljske klase. Glavna svrha objektno orijentiranog programiranja, odnosno ponovna upotreba koda, ostvaruje se jednim nasljeđivanjem. Ako govorimo o pojedinačnom nasljeđivanju u usporedbi s višestrukim nasljeđem, tada jedno nasljeđivanje mora biti lakše u usporedbi s više nasljeđivanja. Poništavanje funkcije koristi se u pojedinačnom nasljeđivanju. Polimorfizam u tijeku rada poznat je kao prevladavajući. Nadjačavanje se postiže korištenjem funkcionalne ključne riječi koja je virtualna. Ova se ključna riječ koristi u osnovnoj klasi. Kad izvedena klasa redefinira funkciju, preinačena funkcija se ne može promijeniti. Prekoračenje u C ++ određuje onu verziju funkcije koja se zove. Pojedinačno nasljeđivanje koristi se na jezicima C ++, Java, PHP, C # i vizualno.

Višestruko nasljeđivanje

Više nasljedstva omogućuju izvedbu više od jedne osnovne klase, što znači da možete dobiti svojstva više od jedne osnovne klase. Možemo imati jednu izvedenu klasu i više osnovnih razreda. Bazna klasa nasljeđuje se spominjanjem zasebnog specifičara pristupa. Više nasljedstva imaju simetrično spajanje i asimetrično proširenje. Kad postoji obrazac adaptera, koristi se više nasljeđivanja. Višestruka nasljedstva koriste se u C ++, Python, Perl, Eiffel, Dylan, Curl, Eulisp, Tcl. Provedba koda za više nasljeđivanja složeno je u usporedbi s pojedinačnim nasljeđivanjem.

Ključne razlike

  1. U pojedinačnom nasljeđivanju izvedena klasa nasljeđuje samo jednu osnovnu klasu dok u višestrukom nasljeđivanju izvedena klasa nasljeđuje više od jedne osnovne klase.
  2. Pojedinačno nasljeđivanje je sigurnije od višestrukog nasljeđivanja, a više nasljednih naslova nije sigurno provesti.
  3. U pojedinačnom nasljeđivanju obilježja jedne klase nasljeđuju se, dok se u višestrukim nasljeđivanjem mogu naslijediti obilježja više klasa.
  4. Pojedinačno nasljeđivanje zahtijeva više vremena izvođenja, dok višestruko nasljeđivanje zahtijeva manje vremena

Zaključak

U ovom članku iznad vidimo jasnu razliku između pojedinačnog nasljeđivanja i višestrukog nasljeđivanja s implementacijom

Objašnjeni video