Ieteicams, 2024

Redaktora Izvēle

Atšķirība starp metodes pārslodzi un pārsvaru

Metodes pārslodze
Metodes pārslodze, kas pazīstama arī kā funkciju pārslodze vai Kompilācijas laika polimorfisms, ir koncepcija, kurā ir divas vai vairākas metodes ar tādu pašu nosaukumu, bet atšķirīgs paraksts tajā pašā darbības jomā. Ir daudzas programmēšanas valodas, kas atbalsta šo funkciju: Ada, C ++, C #, D un Java.

Metodes pārslodzes piemērs C #

klase OverloadShapes {peldošs daudzstūris (int rādiuss, pludiņš pi) {float circleArea = pi * rādiuss * rādiuss; } int Poligons (int garums, int platums) {int taisnstūrisArea = garums * platums; } int Polygons (int puse) {int squareArea = sānu * puse; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14klase OverloadShapes {peldošs daudzstūris (int rādiuss, pludiņš pi) {float circleArea = pi * rādiuss * rādiuss; } int Poligons (int garums, int platums) {int taisnstūrisArea = garums * platums; } int Polygons (int puse) {int squareArea = sānu * puse; }}

Kā parādīts iepriekš minētajā piemērā, metode “daudzstūris” ir pārslogota 3 reizes ar atšķirīgu metodi, ti, parametru veids vai skaits ir atšķirīgs.

Metode ignorēšana
Metode, kas ir svarīgāka, pazīstama arī kā funkciju pārsvarā vai palaišanas laika polimorfisms, ir OOP funkcija, kas ļauj bērna klasei nodrošināt savu īstenošanu mātes klasē definētajai metodei. Īstenošana bērna klasē ignorē bāzes klases definīciju, ar nosacījumu, ka bērna šķiras metodei ir jābūt vienādam nosaukumam, parakstam un atgriešanās veidam.

Piemērs metodei, kas pārsniedz C #

class Source1 {public void draw () {Console.Writeline ("Es esmu klasē Source1"); }} klase Source2 paplašina Source1 {public void draw () {Console.Writeline ("Es esmu klasē Source2"); }}
1 2 3 4 5 6 7 8 9 10klases Source1 {public void draw () {Console. Writeline ("Es esmu klasē Source1"); }} klase Source2 paplašina Source1 {public void draw () {Console. Writeline ("Es esmu klasē Source2"); }}

Šeit Source2 klases zīmēšanas metode ignorē Source1 klasē noteikto zīmēšanas metodi.

Atšķirība starp metodi pārslodzi un metodi pārsvaru

  1. Metodes pārslodzes metodēs jābūt atšķirīgam parakstam. Metodē primārām metodēm ir jābūt vienādam parakstam.
  2. Funkciju pārslodze ir “pievienot” vai “paplašināt” vairāk metožu uzvedībai. Funkcijas pārsvarā ir pilnībā „mainīt” vai “no jauna” definēt metodes darbību.
  3. Metodes pārslodzi izmanto, lai panāktu kompilācijas laiku polimorfismu; Lai sasniegtu izpildes laika polimorfismu, tiek izmantota metode.
  4. Metodē / funkcijā pārslodze kompilators zina, kurš objekts piešķirts kādai klasei kompilācijas laikā, bet metodē, kas pārsniedz šo informāciju, nav zināms līdz runtime.
  5. Funkcija Pārslodze notiek vienā un tajā pašā klasē, bet virsraksts notiek klasē, kas iegūta no bāzes klases.
Top