Galvenā atšķirība : pārslodze nozīmē divas vienas klases metodes ar tādu pašu nosaukumu un ar dažādiem parametru tipiem, turpretim primārie līdzekļi ar divām atšķirīgām metodēm vienā klasē ar tiem pašiem parametru tipiem, bet ar dažādām ieviešanas metodēm.
Metodes, kas ir svarīgākas un pārslogotas, ir divas koncepcijas vai metodes, ko izmanto Java programmēšanas valodās. Abi jēdzieni ļauj programmētājam nodrošināt dažādas realizācijas metodes ar tādu pašu nosaukumu. Šajā rakstā ir nošķirti divi programmēšanas jēdzieni.
Funkciju pārslodze vai pārslodzes metode ļauj izveidot vairākas metodes ar tādu pašu nosaukumu, tajā pašā klasē, bet atšķiras viena no otras, ievades un izejas tipa funkcijā. Tas ir vienkārši definēts kā vienas funkcijas spēja veikt dažādus uzdevumus.
Pārslodzes gadījumā metodes ieviešanai ir vienāds nosaukums, jo tie veic līdzīgus uzdevumus. Arī pārslodze tiek uzskatīta par polimorfu. Funkcijas, kurām ir atšķirīgas realizācijas, ir atkarīgas no to norādītajiem argumentu veidiem. Tas parasti ir saistīts ar statiskām programmēšanas valodām, kas nodrošina tipa pārbaudi funkciju zvanos. Tiek uzskatīts arī par praktisku, jo tas ļauj programmētājam rakstīt vairākas dažādas metodes vienā klasē. Tomēr, pārslogojot izpildlaika procesoru, mainās visu pārslogoto metožu nosaukums, kas var būt problēma.
Metode, kas ir svarīgāka objektorientētā programmēšanā, ir iezīme, kas ļauj apakšklasē vai bērnu klasē nodrošināt konkrētas metodes ieviešanu, ko jau nodrošina viena no tās superklasēm vai vecāku klasēm. Īstenošana apakškategorijā ignorē vai aizstāj vecāku klases ieviešanu, nodrošinot metodi ar tādu pašu nosaukumu, tiem pašiem parametriem vai parakstu, un to pašu atgriešanas veidu kā metodi mātes klasē.
Metodē svarīgākās funkcijas ir kodētas, lai veiktu konkrētus uzdevumus programmā. Pārspīlējums ir atkarīgs no bāzes klases funkcijas klātbūtnes. Šeit izpildīto funkciju nosaka objekts, kas tiek izmantots, lai to izmantotu, ti, ja metode tiek izmantota, ja tiek izmantots vecāku klases objekts, tad funkcija vecāku klasē tiks izpildīta. Pārspīlējums pēc būtības ir polimorfs; tas palīdz izstrādāt programmas, pamatojoties uz pirmo netiešo parametru, ko var atrisināt izpildīšanas laikā. Java ir dažas valodas, kas ļauj programmētājam novērst metodi.
Salīdzinājums starp pārslodzi un pārsvaru:
Pārslodze | Pārspīlējums | |
Definīcija | Tas nozīmē, ka ir tādas pašas klases metodes ar vienu un to pašu nosaukumu, bet katrai metodei ir dažādi parametri vai tam ir tādi paši parametri ar dažādiem veidiem un kārtību. | Tas nozīmē, ka apakšgrupai ir tādas pašas metodes ar tādu pašu nosaukumu un tieši tā paša tipa parametriem un to pašu atgriešanās veidu kā superklasei. |
Nozīme | Tas nozīmē, ka vairākām metodēm ir vienāds nosaukums tajā pašā klasē, bet tam ir atšķirīgs paraksts. | Tas nozīmē, ka bāzes klases metode atvasinātajā klasē tiek pārrakstīta ar tādu pašu parakstu. |
Uzvedība | Tā papildina vai paplašina metožu uzvedību. | Tas maina metodes pašreizējo uzvedību. |
Polimorfisms | Tas ir kompilēšanas laika polimorfisms. | Tas ir palaist laika polimorfisms. |
Statiskā metode | Statisko metodi var pārslogot. | Statisko metodi nevar ignorēt. |
Obligācija | Statiskā saite. | Dinamiskā saite. |
Mantojums | Tas var prasīt vai neprasīt mantojumu. | Tas vienmēr prasa mantojumu. |
Asociācija | Tā parasti ir saistīta ar statiskām programmu valodām. | Tas parasti ir saistīts ar objektu orientētām programmām. |
Paraksts | Metodēm ir atšķirīgs paraksts. | Metodēm jābūt vienādam parakstam. |
Ātrums | Tas ir ātrāks nekā svarīgāks. | Tas ir lēns salīdzinājumā ar pārslodzi. |
Klases | Tam nav vajadzīgas vairāk nekā vienas klases pārslodzes. | Tas prasa vismaz divas klases pārslodzei. |
Līmenis | Metodēm var būt jebkurš piekļuves līmenis. | Metodēm ir vienāds vai plašs piekļuves līmenis. |
Piemērs | Klase Pievienot { int summa (int a, int b) { atgriezties a + b; } int summa (int a) { atgriezties + 10; } } | A klase // Super klase { tukšs displejs (int num) { drukas num; } } // B klase pārņem A klasi B klase // Apakškategorija { tukšs displejs (int num) { drukas num; } } |