Starpība Starp Primāro Un Pārslodzi

Starpība Starp Primāro Un Pārslodzi
Starpība Starp Primāro Un Pārslodzi

Video: Starpība Starp Primāro Un Pārslodzi

Video: Starpība Starp Primāro Un Pārslodzi
Video: KSGER T12 + MeanWell EPS 120-24 2024, Novembris
Anonim

Pārvarēšana vs pārslodze

Metode Overriding un metode Overloading ir divi jēdzieni / paņēmieni / pazīme, kas sastopama dažās programmēšanas valodās. Abi jēdzieni ļauj programmētājam nodrošināt dažādu ieviešanu metodēm ar tādu pašu nosaukumu. Metodes ignorēšana ļauj programmētājam nodrošināt alternatīvu ieviešanu apakšklasē metodei, kas jau ir definēta tā superklasē. Metodes pārslodze ļauj programmētājam nodrošināt dažādas ieviešanas vairākām metodēm ar tādu pašu nosaukumu (vienā klasē).

Kas ir svarīgākais?

Kā minēts iepriekš, klase var paplašināt superklasi vai vecāku klasi objektorientētās programmēšanas valodās. Bērnu klasei var būt savas metodes vai izvēles metodes, kas jau definētas vecāku klasē (vai vienā no vecāku klasēm). Tātad, kad notiek pēdējais, to sauc par metodes ignorēšanu. Citiem vārdiem sakot, ja bērnu klase nodrošina metodes ieviešanu ar tādu pašu parakstu un atgriešanās veidu kā metode, kas jau definēta vienā no vecāku klasēm, tiek uzskatīts, ka šī metode tiek ignorēta (aizstāta) ar bērnu klases ieviešanu. Tātad, ja klasē ir ignorēta metode, izpildlaika sistēmai būs jāizlemj, kuras metodes ieviešana tiek izmantota. Šī problēma tiek atrisināta, aplūkojot precīzu objekta tipu, kas tiek izmantots tā izsaukšanai. Ja vecāku klases objekts tiek izmantots, lai izsauktu ignorēto metodi, tiek izmantota ieviešana vecāku klasē. Līdzīgi, ja tas tiek izmantots bērnu klases objekts, tiek izmantota bērnu klases ieviešana. Mūsdienu programmēšanas valodas, piemēram, Java, Eifell, C ++ un Python, ļauj metožu ignorēšanu.

Kas ir pārslodze?

Metodes pārslodze ir funkcija, ko nodrošina dažas programmēšanas valodas, lai izveidotu vairāk nekā vienu metodi ar tādu pašu nosaukumu, bet ar dažādiem ievades un izvades veidiem. Mūsdienu programmēšanas valodās, piemēram, Java, C #, C ++ un VB. NET, šī funkcija ir pieejama. Metodi var pārslogot, izveidojot citu metodi ar tādu pašu nosaukumu, bet ar citu metodes parakstu vai citu atgriešanās veidu (vai abiem). Piemēram, ja vienā klasē ir metode1 (tips1 t1) un metode1 (tips2t2), tad tās ir pārslogotas. Tad sistēmai būs jāizlemj, kura no tām tiks izpildīta, kad to izsauks. Šī diferenciācija tiek veikta, aplūkojot metodei nodotā (-o) parametra (-u) tipu. Ja arguments ir type1, tad tiek izsaukta pirmā ieviešana, savukārt, ja tā ir type2, tad tiek izsaukta otrā implementācija.

Kāda ir atšķirība starp ignorēšanu un pārslodzi?

Lai gan metodes nodrošināšanai ar dažādu ieviešanu tiek izmantota metožu ignorēšana un metožu pārslodze, starp šiem diviem jēdzieniem / metodēm pastāv būtiskas atšķirības. Pirmkārt, metožu ignorēšanas priekšmeti vienmēr paliek dažādās klasēs, bet metodes pārslodzes priekšmeti - vienā klasē. Tas nozīmē, ka ignorēšana ir iespējama tikai objektorientētās programmēšanas valodās, kas ļauj mantot, savukārt pārslodze var būt pieejama arī valodā, kas nav orientēta uz objektu. Citiem vārdiem sakot, jūs ignorējat metodi superklasē, bet jūs pārslogojat metodi savā klasē.

Vēl viena atšķirība ir tā, ka ignorētajām metodēm ir vienāds metodes nosaukums, metodes paraksts un atgriešanās veids, taču pārslogotajām metodēm ir jāatšķiras vai nu pēc paraksta, vai atgriešanās veida (nosaukumam jābūt vienādam). Lai nošķirtu divas ignorētās metodes, tiek izmantots objekta precīzs tips, kas tiek izmantots, lai izsauktu izmantotās metodes id, savukārt, lai nošķirtu divas pārslogotas metodes, tiek izmantoti parametru veidi. Vēl viena būtiska atšķirība ir tā, ka pārslodze tiek atrisināta sastādīšanas laikā, savukārt pārspiešana tiek atrisināta izpildlaikā.

Ieteicams: