Agrīna iesiešana un vēlīna iesiešana ir divi jēdzieni, kas saistīti ar polimorfismu. Agrīna iesiešana notiek kompilācijas laikā, bet vēlīna saistoša - izpildes laikā. galvenā atšķirība starp agrīno un vēlo iesiešanu tas ir Early Binding izmanto klases informāciju, lai atrisinātu metodes izsaukšanu, savukārt Late Binding izmanto objektu, lai atrisinātu metodes izsaukšanu.
Programmēšanas valodas, piemēram, Java, atbalsta objektorientēto programmēšanu (OOP). Tā ir paradigma, kas ļauj konstruēt programmu vai programmatūru, izmantojot objektus. Programmatūrā ir vairāki objekti. Šie objekti ir savienoti viens ar otru un nodod ziņojumus, izmantojot metodes. Katram objektam ir īpašības un izturēšanās. Raksturlielumus raksturo īpašības vai atribūti. Uzvedība tiek aprakstīta, izmantojot metodes. Objektam Studentam var būt tādas īpašības kā vārds, vecums, un tos attēlo īpašības. Objekts Studentam var būt tāda uzvedība kā mācīšanās un lasīšana, un to attēlo metodes. Viens no galvenajiem OOP pīlāriem ir polimorfisms. Tas ļauj objektam izturēties vairākos veidos. Agrīna iesiešana un vēlīna iesiešana ir divi jēdzieni polimorfismā. Pārslodzes metodes tiek savienotas, izmantojot agrīnu iesiešanu. Pārspīlētās metodes tiek savienotas, izmantojot novēloto iesiešanu.
1. Pārskats un galvenās atšķirības
2. Kas ir agrīna iesiešana
3. Kas ir novēlota iesiešana
4. Līdzības starp agrīno un vēlo iesiešanu
5. Salīdzinājums blakus - agrīna un vēla iesiešana tabulas formā
6. Kopsavilkums
Agrīnajā iesiešanā klases informācija tiek izmantota, lai atrisinātu metodes izsaukšanu. Agrīna iesiešana notiek kompilēšanas laikā. To sauc arī par statisko iesiešanu. Šajā procesā iesiešana notiek pirms programmas faktiskās palaišanas. Pārslodzes metodes tiek savienotas, izmantojot agrīnu iesiešanu. Skatiet zemāk esošo programmu.
01. attēls. Aprēķina klase
02. Attēls. Galvenā programma agrīnai iesiešanai
Saskaņā ar iepriekš minēto programmu aprēķināšanas klasē ir pievienotā metode, kas pieņem divas veselas skaitļa vērtības, un vēl viena pievienošanas metode, kas pieņem divas dubultās vērtības. Pamatprogrammā tiek izveidots objekta tips Calculation. Kad pievienošanas metodei tiek nodoti divi veseli skaitļi, tā izsauks pievienošanas metodi, kas pieņem divus veselus skaitļus. Nododot pievienošanas metodei divas dubultās vērtības, tā izsauks metodi, kas atbilst divām dubultā vērtībām. Šis iesiešanas process notiek kompilēšanas laikā. Visa nepieciešamā informācija ir zināma pirms izpildlaika, tāpēc tas palielina programmas efektivitāti un izpildes ātrumu.
Late Binding objektā tiek izmantots metodes izsaukšanas risinājums. Vēla saistīšana notiek izpildlaikā. To sauc arī par dinamiska iesiešana. Šajā procesā iesiešana notiek programmas izpildē. Pārspīlētās metodes tiek savienotas, izmantojot novēloto iesiešanu. Skatiet zemāk esošo programmu.
03. attēls. Formas klase
04. attēls: apļa klase
05. attēls: trīsstūra klase
06. attēls. Galvenā programma vēlu iesiešanai
Saskaņā ar iepriekšminēto programmu, klases formā ir izlozes metode. Class Circle un Class Triangle klase paplašina Shape klasi. Tāpēc šīs divas klases var mantot Shape klases atribūtus un metodes. Formas klase ir pamatklase. Apļa un trīsstūra klases ir atvasinātas klases. Klases aplim un klases trīsstūrim ir arī izlozes metode ar savām ieviešanām. Tātad, izlozes metode Shape klasē tiek aizstāta ar atvasināto klašu izlozes metodēm.
Pamatprogrammā tiek izveidots Shape tipa atsauces mainīgais. Apkopošanas laikā kompilators atsaucas tikai uz bāzes klases izlozes metodi. Runtime tiks izpildītas dažādas izlozes metodes. Pirmkārt, s norāda uz Shape tipa objektu. Tātad tiek pielietota Shape klases izlozes metode. Tad s norāda uz apļa tipa objektu un izsauc apļa klases izlozes metodi. Visbeidzot, s norādīs uz trīsstūra tipa objektu un izsauks zīmēšanas metodi trīsstūra klasē. Metodes tiek izsauktas atkarībā no objektiem. Tāpēc objekts tiek izmantots, lai atrisinātu metodes izsaukšanu vēlīnā iesiešanā. Iesiešanai nepieciešamā informācija tiek sniegta izpildes laikā, tāpēc izpildes ātrums ir lēnāks, salīdzinot ar agrīno iesiešanu.
Agrīna iesiešana vs vēlīna iesiešana | |
Klases informācijas izmantošanas procesu, lai atrisinātu metodes izsaukšanu, kas notiek kompilēšanas laikā, sauc par Early Binding. | Objekta izmantošanas procesu, lai atrisinātu metodes izsaukšanu, kas notiek izpildes laikā, sauc par Late Binding. |
Iesiešanas laiks | |
Agrīna iesiešana notiek sastādīšanas laikā. | Vēla iesiešana notiek izpildes laikā. |
Funkcionalitāte | |
Early Binding izmanto klases informāciju, lai atrisinātu metodes izsaukšanu. | Late Binding izmanto objektu, lai atrisinātu metodes izsaukšanu. |
Sinonīmi | |
Agrīnā iesiešana ir pazīstama arī kā statiskā iesiešana ... | Vēlā iesiešana ir pazīstama arī kā dinamiskā iesiešana. |
Notikums | |
Pārslodzes metodes tiek savienotas, izmantojot agrīnu iesiešanu. | Pārspīlētās metodes tiek savienotas, izmantojot novēloto iesiešanu. |
Izpildes ātrums | |
Sākuma iesiešanas laikā izpildes ātrums ir ātrāks. | Vēlajā iesiešanā izpildes ātrums ir mazāks. |
OOP parasti tiek izmantots programmatūras izstrādei. Viens no galvenajiem OOP pīlāriem ir polimorfisms. Agrīna iesiešana un vēlīna iesiešana ir saistīta ar to. Agrīna iesiešana notiek kompilācijas laikā, bet vēlīna saistoša - izpildes laikā. Metodes pārslodzes gadījumā savienošana notiek, izmantojot agrīno iesiešanu. Metodes pārsniegšanas gadījumā savienošana notiek, izmantojot vēlīnā iesiešanu. Atšķirība starp agrīno un vēlo iesiešanu ir tāda, ka agrīnā iesiešana izmanto klases informāciju, lai atrisinātu metodes izsaukšanu, savukārt vēlīnā iesiešana izmanto objektu, lai atrisinātu metodes izsaukšanu..
1.Java Intervija 04 - Statiskā iesiešana un dinamiskā iesiešana, Mahika konsultācijas, 2017. gada 27. decembris. Pieejams šeit
2.Dinamiskās metodes nosūtīšana Java | Core Java apmācība | Studiju gaisma. Pieejams šeit