galvenā atšķirība starp pārsniegšanu un pārslodzi C # ir tas pārsniegtās metodes izsaukuma saistīšana ar tās definīciju notiek izpildlaikā, savukārt pārslogotās metodes izsaukuma saistīšana ar tās definīciju notiek kompilēšanas laikā.
C # ir universāla programmēšanas valoda, ko izstrādājusi Microsoft. Galvenā C # priekšrocība ir tā, ka tā atbalsta Object Oriented Programming (OOP). OOP viens pīlārs ir polimorfisms. Tas objektam dod iespēju izturēties vairākkārt. Polimorfismā ir divi veidi, kas pazīstami kā pārslodze un pārslodze. Šajā rakstā apskatīta atšķirība starp metodes pārsniegšanu un pārslodzi C #.
1. Pārskats un galvenās atšķirības
2. Kas ir svarīgākais C #
3. Kas ir pārslodze C #
4. Līdzības starp pārslodzi un pārslodzi C #
5. Salīdzinājums blakus - pārspiešana un pārslodze C # tabulas formā
6. Kopsavilkums
OOP ir vēl viens svarīgs jēdziens - mantojums. Ir jāizmanto jau esošās klases atribūti un metodes. Tas uzlabo koda atkārtotu izmantojamību. Jau esošā klase ir pamata klase, un jaunā klase ir zināma kā atvasinātā klase. Pārvarot polimorfismu, jābūt pamatklasei un atvasinātai klasei. Pārsniegtās metodes izsaukuma saistīšana ar definīciju notiek izpildlaikā. Piemērs ir šāds.
01. attēls. C # programma ar ignorēšanu
Saskaņā ar iepriekšminēto programmu, klases forma ir pamatklase, un tajā ir parādīta metode. Klases taisnstūris un trīsstūris ir atvasinātas klases. Šīm atvasinātajām klasēm ir arī tāda pati metodes attēlošana ar savām ieviešanām.
Vispirms tiek izveidots atsauces mainīgais obj. Tas norāda uz Shape objektu. Tātad, tiks izpildīta Shape klases attēlošanas metode. Pēc tam atsauces mainīgais norāda uz objektu taisnstūris. Tātad tiks izpildīta taisnstūra klases attēlošanas metode. Visbeidzot, atsauces mainīgais norāda uz objektu Trijstūris. Tātad, tiks izpildīta trīsstūra klases attēlošanas metode. Pamatklases displeja metodi pārspēj atvasināto klašu displeja metodes.
Par palaišanas metodi tiek lemts izpildlaika laikā. Shape klase tiek rakstīta ar “virtuālu” atslēgvārdu. Taisnstūra un trīsstūra klases ir rakstītas ar 'ignorēt' atslēgvārdu. Ja šie atslēgas vārdi netiek izmantoti, izvade izdrukās Shape klases attēlošanas metodes saturu visiem.
Pārslodzes gadījumā vairākām metodēm ir vienāds nosaukums, bet ar atšķirīgiem parametriem. Parametri var būt dažādi. Metodēm var būt arī atšķirīgs parametru skaits. Metodes pārslodze notiek tajā pašā klasē. Pārslogotu metožu saistīšana ar definīciju notiek kompilēšanas laikā. Skatiet zemāk esošo C # programmu.
02 attēls: C # programma ar pārslodzi
Saskaņā ar iepriekšminēto programmu, A klasei ir divas metodes ar tādu pašu nosaukumu, ko sauc par summu. Viņiem ir dažāda veida parametri. Pamatprogrammā tiek izveidots objekts A. Summa (2,3) izsauks summas metodi ar veseliem skaitļiem. Summa (5.1., 7.94.) Izsauks summu metodi ar divkāršām vērtībām. Abām metodēm ir vienāds nosaukums un vienāds parametru skaits. Bet parametru veidi ir atšķirīgi. Attiecīgi tiek saukta nepieciešamā metode. Pārslodze var notikt arī tad, ja metožu nosaukumi un parametru veidi ir vienādi, bet parametru skaits ir atšķirīgs.
Pārspiešana un pārslodze C # | |
Galvenā nozīme C # nozīmē nodrošināt īpašu ieviešanu atvasinātās klases metodē metodei, kas jau pastāv pamatklasē. | Pārslodze C # ir izveidot vairākas metodes ar vienādu nosaukumu ar dažādām ieviešanām. |
Parametri | |
C # pārsvarā metodēm ir vienāds nosaukums, vieni un tie paši parametru veidi un vienāds parametru skaits. | C # pārslodzes gadījumā metodēm ir tāds pats nosaukums, bet atšķirīgs parametru skaits vai cita veida parametri. |
Notikums | |
C # kategorijā pārsvars notiek pamatklasē un atvasinātajā klasē. | C # klasē pārslodze notiek tajā pašā klasē. |
Iesiešanas laiks | |
Pārsniegtās metodes izsaukuma saistīšana ar tās definīciju notiek izpildlaikā. | Pārslogotas metodes izsaukuma saistīšana ar tās definīciju notiek kompilēšanas laikā. |
Sinonīmi | |
Pārvarēšanu sauc par izpildlaika polimorfisms, dinamiskais polimorfisms vai vēlu iesiešana. | Pārslodzi sauc par sastādīt laika polimorfismu, statiskā polimorfisms vai agrīna iesiešana. |
Pārvarēšana un pārslodze ir divu veidu polimorfisms. Atšķirība starp C # pārspīlēšanu un pārslodzi ir tāda, ka pārsniegtās metodes izsaukuma saistīšana ar tās definīciju notiek izpildlaikā, savukārt pārslogotās metodes izsaukuma saistīšana ar tās definīciju notiek kompilēšanas laikā..
1.Kumars, Mukešs. C # stūris. Pieejams šeit
2.tutorialspoint.com. “C # polimorfisms.” KonsultācijasPoint. Pieejams šeit
3.tutorialspoint.com. “C # datu tipi.” TutorialsPoint, pieejams šeit