Atšķirība starp ignorēšanu un pārslodzi

Atšķirība starp ignorēšanu un pārslodzi
Atšķirība starp ignorēšanu un pārslodzi

Video: Atšķirība starp ignorēšanu un pārslodzi

Video: Atšķirība starp ignorēšanu un pārslodzi
Video: Consumer Goods and Industrial Goods 2024, Decembris
Anonim

Ievērošana pret pārslodzi

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

Kas ir ignorēšana?

Kā minēts iepriekš, klase var paplašināt superklasi vai vecākklasi objektorientētās programmēšanas valodās. Pakārtotajai klasei var būt savas metodes vai arī tai var būt savas implementācijas metodēm, kas jau definētas tās vecākklasē (vai vienā no galvenajām vecākklasēm). Tātad, kad notiek pēdējais, to sauc par metodes ignorēšanu. Citiem vārdiem sakot, ja pakārtotā klase nodrošina metodes ieviešanu ar tādu pašu parakstu un atgriešanas veidu kā metodei, kas jau definēta vienā no vecākklasēm, tiek uzskatīts, ka šī metode tiek ignorēta (aizstāta) ar bērnklases implementāciju.. Tātad, ja klasē ir ignorēta metode, izpildlaika sistēmai būs jāizlemj, kura metodes ieviešana tiek izmantota. Šī problēma tiek atrisināta, aplūkojot precīzu objekta veidu, kas tiek izmantots tā izsaukšanai. Ja vecākklases objekts tiek izmantots, lai izsauktu ignorēto metodi, tad tiek izmantota implementācija vecākklasē. Tāpat, ja tiek izmantots bērnklases objekts, tiek izmantota bērnklases realizācija. Mūsdienu programmēšanas valodas, piemēram, Java, Eifell, C++ un Python, ļauj ignorēt metodes.

Kas ir pārslodze?

Metodes pārslodze ir līdzeklis, 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. Varat pārslogot metodi, izveidojot citu metodi ar tādu pašu nosaukumu, bet ar citu metodes parakstu vai atšķirīgu atgriešanas veidu (vai abus). Piemēram, ja jums ir metode1 (tips1 t1) un metode 1 (tips2 t2) vienā klasē, tad tie ir pārslogoti. Tad sistēmai būs jāizlemj, kuru izpildīt, kad tā tiks izsaukta. Šo diferenciāciju veic, aplūkojot metodei nodotā(-o) parametra(-u) veidu. Ja arguments ir 1. tipa, tad tiek izsaukta pirmā implementācija, savukārt, ja tā ir 2. tipa, tad tiek izsaukta otrā implementācija.

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

Lai gan metodes ignorēšana un metožu pārslodze tiek izmantota, lai nodrošinātu metodi ar atšķirīgu ieviešanu, starp šiem diviem jēdzieniem/tehnikām ir būtiskas atšķirības. Pirmkārt, metodes ignorēšanas priekšmeti vienmēr atrodas dažādās klasēs, bet metožu pārslodzes priekšmeti paliek vienā klasē. Tas nozīmē, ka ignorēšana ir iespējama tikai objektorientētās programmēšanas valodās, kas pieļauj mantošanu, savukārt pārslodze var būt pieejama arī neobjektorientētā valodā. 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šanas veids, bet pārslogotajām metodēm ir jāatšķiras vai nu pēc paraksta, vai atgriešanas veida (nosaukumam ir jābūt vienādam). Lai atšķirtu divas pārslogotas metodes, precīzs objekta veids, kas tiek izmantots, lai izsauktu izmantotās metodes ID, savukārt, lai atšķ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 kompilēšanas laikā, bet ignorēšana tiek atrisināta izpildlaikā.

Ieteicams: