Skirtumas tarp metodo perkrovos ir nepaisymo

Metodo perkrovimas

Metodo perkrovimas, taip pat žinomas kaip Funkcijų perkrovimas arba Kompiliuoti laiko polimorfizmą, yra sąvoka, turinti du ar daugiau metodų tuo pačiu pavadinimu, bet skirtingu parašu toje pačioje srityje. Šią funkciją palaiko daugybė programavimo kalbų: „Ada“, „C ++“, „C #“, „D“ ir „Java“.

C # perkrovos metodo pavyzdys
Kaip parodyta aukščiau pateiktame pavyzdyje, metodas „daugiakampis“ 3 kartus apkraunamas skirtingais metodo parašais, t. Y. Tipas ar parametrų skaičius skiriasi..

Metodo viršenybė

Metodo nepaisymas, taip pat žinomas kaip Funkcijos nepaisymas arba Vykdymo laiko polimorfizmas, yra OOP funkcija, leidžianti vaikų klasei patiems įgyvendinti metodą, apibrėžtą tėvų klasėje. Įgyvendinimas vaikų klasėje nepaiso metodo apibrėžimo pagrindinėje klasėje, su sąlyga, kad metodas vaikų klasėje turėtų būti tas pats vardas, parašas ir grįžimo tipas..

C # viršesnio metodo pavyzdys
Čia piešimo metodas „Source2“ klasėje yra svarbesnis už „Source1“ klasėje apibrėžtą piešimo metodą.

Skirtumas tarp metodo perkrovos ir metodo viršijimo

  1. Metode perkrovos metodai turi būti pasirašyti skirtingai. Metode svarbesnieji metodai turi būti pasirašyti tuo pačiu parašu.
  2. Funkcijų perkrova yra „pridedama“ arba „išplėsta“ daugiau metodo elgsenos. Svarbiausia funkcija yra visiškai „pakeisti“ arba „iš naujo apibrėžti“ metodo elgesį.
  3. Kompiliavimo laiko polimorfizmui pasiekti naudojamas perkrovos metodas; metodo nepaisymas yra naudojamas vykdant laiko polimorfizmą.
  4. Metodo / funkcijos perkrovos atveju kompiliatorius žino, kuris objektas buvo priskirtas kuriai klasei kompiliavimo metu, tačiau metodo metu šios informacijos nepaisymas nežinomas iki vykdymo laiko..
  5. Funkcijų perkrova vyksta toje pačioje klasėje, o viršesnis - klasėje, gautoje iš bazinės klasės.
IT