Pagrindinis skirtumas – ankstyvas ir vėlyvas įrišimas
Ankstyvas įrišimas ir vėlyvas įrišimas yra dvi sąvokos, susijusios su polimorfizmu. Ankstyvasis surišimas įvyksta kompiliavimo metu, o vėlyvas – vykdymo metu. Pagrindinis skirtumas tarp ankstyvojo ir vėlyvojo susiejimo yra tas, kad ankstyvasis susiejimas naudoja klasės informaciją, kad išspręstų metodų iškvietimą, o vėlyvasis surišimas naudoja objektą metodo iškvietimui išspręsti.
Programavimo kalbos, tokios kaip Java, palaiko objektinį programavimą (OOP). Tai paradigma, leidžianti kurti programą ar programinę įrangą naudojant objektus. Programinėje įrangoje yra keli objektai. Šie objektai yra sujungti vienas su kitu ir perduoda pranešimus naudojant metodus. Kiekvienas objektas turi ypatybes ir elgseną. Charakteristikos apibūdinamos savybėmis arba atributais. Elgesys aprašomas naudojant metodus. Objektas Studentas gali turėti tokias charakteristikas kaip vardas, amžius ir jas atvaizduoja savybės. Objektas Mokinys gali turėti elgseną, pvz., mokytis ir skaityti, ir jie atvaizduojami metodais. Vienas iš pagrindinių OOP ramsčių yra polimorfizmas. Tai leidžia objektui elgtis įvairiais būdais. Ankstyvasis įrišimas ir vėlyvas įrišimas yra dvi polimorfizmo sąvokos. Perkrovos metodai surišami naudojant ankstyvą surišimą. Nepaisyti metodai susiejami naudojant vėlyvą susiejimą.
Kas yra ankstyvasis įrišimas?
Ankstyvajame įrišime klasės informacija naudojama metodo iškvietimui išspręsti. Ankstyvas įrišimas įvyksta kompiliavimo metu. Jis taip pat žinomas kaip statinis įrišimas. Šiame procese susiejimas įvyksta prieš iš tikrųjų paleidžiant programą. Perkrovos metodai surišami naudojant ankstyvą surišimą. Žiūrėkite toliau pateiktą programą.
01 pav.: Skaičiavimo klasė
02 pav.: Pagrindinė ankstyvojo įrišimo programa
Pagal aukščiau pateiktą programą, skaičiavimo klasėje yra pridėjimo metodas, kuris priima dvi sveikųjų skaičių reikšmes, ir kitas pridėjimo metodas, kuris priima dvi dvigubas reikšmes. Pagrindinėje programoje sukuriamas Skaičiavimo tipo objektas. Kai pridėjimo metodui perduodami du sveikieji skaičiai, jis iškviečia pridėjimo metodą, kuris priima du sveikuosius skaičius. Perduodant dvi dvigubas reikšmes į pridėjimo metodą, jis iškvies metodą, atitinkantį dvi dvigubas reikšmes. Šis įrišimo procesas vyksta kompiliavimo metu. Visa reikalinga informacija yra žinoma prieš paleidžiant, todėl tai padidina programos efektyvumą ir vykdymo greitį.
Kas yra vėlyvas įrišimas?
Vėlyvo įrišimo metu objektas naudojamas metodo iškvietimui išspręsti. Vėlyvas susiejimas įvyksta vykdymo metu. Jis taip pat žinomas kaip dinaminis įrišimas. Šiame procese susiejimas įvyksta programos vykdymo metu. Nepaisyti metodai sujungiami naudojant vėlyvą įrišimą. Žiūrėkite toliau pateiktą programą.
03 paveikslas: formos klasė
04 pav.: Apskritimo klasė
05 pav.: trikampio klasė
06 pav.: Pagrindinė vėlyvojo įrišimo programa
Pagal aukščiau pateiktą programą, klasė Shape turi piešimo metodą. „Class Circle“ir „Class Triangle“klasės praplečia Shape klasę. Todėl šios dvi klasės gali paveldėti Shape klasės atributus ir metodus. „Shape Class“yra pagrindinė klasė. Apskritimo ir trikampio klasės yra išvestinės klasės. Klasės „Circle“ir „Triangle“taip pat turi piešimo metodą su savo įgyvendinimais. Taigi, piešimo metodas Shape klasėje yra nepaisomas išvestinių klasių piešimo metodais.
Pagrindinėje programoje sukuriamas Shape tipo nuorodos kintamasis. Kompiliavimo metu kompiliatorius nurodys tik bazinės klasės sudarymo metodą. Vykdymo metu bus vykdomi skirtingi piešimo metodai. Pirma, s nurodys Shape tipo objektą. Taigi, iškviečiamas Shape klasės piešimo metodas. Tada s nurodys į apskritimo tipo objektą ir iškvies Circle klasės piešimo metodą. Galiausiai s nukreips į objektą, kurio tipas yra Triangle, ir iškvies piešimo metodą Triangle klasėje. Metodai iškviečiami priklausomai nuo objektų. Todėl objektas naudojamas vėlyvojo įrišimo metodo iškvietimui išspręsti. Įrišimui reikalinga informacija pateikiama vykdymo metu, todėl vykdymo greitis yra lėtesnis, palyginti su ankstyvu susiejimu.
Koks yra ankstyvojo ir vėlyvojo įrišimo panašumas?
Ir ankstyvasis, ir vėlyvasis surišimas yra susiję su polimorfizmu, kuris yra OOP ramstis
Kuo skiriasi ankstyvas ir vėlyvas įrišimas?
Ankstyvas įrišimas vs vėlyvas įrišimas |
|
Klasės informacijos panaudojimo metodas kompiliavimo metu vykstančiam metodų iškvietimui išspręsti vadinamas ankstyvuoju susiejimu. | Procesas, kai objektas naudojamas norint išspręsti metodo iškvietimą, kuris vyksta vykdymo metu, vadinamas vėlyvu susiejimu. |
Įrišimo laikas | |
Ankstyvas įrišimas vyksta kompiliavimo metu. | Vėlyvas surišimas vyksta vykdymo metu. |
Funkcionalumas | |
Early Binding naudoja klasės informaciją metodo iškvietimui išspręsti. | Late Binding naudoja objektą metodo iškvietimui išspręsti. |
Sinonimai | |
Ankstyvas įrišimas taip pat žinomas kaip statinis įrišimas.. | Vėlyvas įrišimas taip pat žinomas kaip dinaminis įrišimas. |
Įvykis | |
Perkrovimo metodai yra sujungti naudojant ankstyvą įrišimą. | Nepaisyti metodai sujungiami naudojant vėlyvą įrišimą. |
Vykdymo greitis | |
Vykdymo greitis yra greitesnis ankstyvo įrišimo metu. | Vykdymo greitis yra mažesnis. |
Santrauka – ankstyvas ir vėlyvas įrišimas
OOP dažniausiai naudojamas programinės įrangos kūrimui. Vienas iš pagrindinių OOP ramsčių yra polimorfizmas. Ankstyvasis įrišimas ir vėlyvasis įrišimas yra susiję su tuo. Ankstyvasis surišimas vyksta kompiliavimo metu, o vėlyvas – vykdymo metu. Perkraunant metodą, surišimas vyksta naudojant ankstyvąjį surišimą. Naudojant metodą, surišimas atliekamas naudojant vėlyvąjį surišimą. Skirtumas tarp ankstyvojo ir vėlyvojo susiejimo yra tas, kad ankstyvasis surišimas naudoja klasės informaciją, kad išspręstų metodų iškvietimą, o vėlyvasis surišimas naudoja objektą metodo iškvietimui išspręsti.