Fő különbség – korai és késői kötés
A korai kötés és a késői kötés a polimorfizmushoz kapcsolódó két fogalom. A korai kötés a fordítási időben, míg a késői kötés futási időben történik. A fő különbség a korai és a késői kötés között az, hogy az Early Binding az osztályinformációkat használja a metódushívás feloldásához, míg a Késői kötés az objektumot használja a metódushívás feloldásához.
A programozási nyelvek, mint például a Java, támogatják az objektumorientált programozást (OOP). Ez egy olyan paradigma, amely lehetővé teszi a program vagy a szoftver objektumok felhasználásával való felépítését. A szoftverben több objektum is található. Ezek az objektumok kapcsolódnak egymáshoz, és metódusokkal továbbítják az üzeneteket. Minden tárgynak vannak sajátosságai és viselkedései. A jellemzőket a tulajdonságok vagy attribútumok írják le. A viselkedések leírása módszerek segítségével történik. A Student objektumnak lehetnek olyan jellemzői, mint a név, életkor, és ezeket tulajdonságok képviselik. A Student objektumnak lehetnek olyan viselkedései, mint például a tanulás és az olvasás, és ezeket metódusokkal ábrázolják. Az OOP egyik fő pillére a polimorfizmus. Lehetővé teszi, hogy egy objektum többféleképpen viselkedjen. A korai kötés és a késői kötés két fogalom a polimorfizmusban. A túlterheléses módszereket korai kötéssel kötik össze. A felülírt módszerek késői kötést használnak.
Mi az a korai kötés?
A korai kötésben az osztályinformációkat a metódushívás feloldására használják. A korai kötés a fordítási időben történik. Statikus kötésnek is nevezik. Ebben a folyamatban az összerendelés a program tényleges futása előtt megtörténik. A túlterheléses módszereket korai kötéssel kötik össze. Tekintse meg az alábbi programot.
01. ábra: Számítási osztály
02. ábra: Fő program a korai kötéshez
A fenti program szerint a Calculation osztály tartalmaz egy hozzáadási metódust, amely két egész értéket fogad el, és egy másik add metódust, amely két dupla értéket fogad el. A főprogramban egy Calculation típusú objektum jön létre. Ha két egész számot ad át az add metódusnak, akkor meghívja azt az add metódust, amely két egész számot fogad el. Ha két dupla értéket ad át az add metódusnak, akkor a két dupla értéknek megfelelő metódust hívja meg. Ez a kötési folyamat a fordítási időben történik. Minden szükséges információ ismert futási idő előtt, így növeli a program hatékonyságát és végrehajtási sebességét.
Mi az a késői kötés?
A késői kötésben az objektumot a metódushívás feloldására használják. Késői kötés futásidőben történik. Dinamikus kötésnek is nevezik. Ebben a folyamatban az összerendelés a program végrehajtása során történik. A felülírt módszerek késői kötéssel vannak összekapcsolva. Tekintse meg az alábbi programot.
03. ábra: Alakosztály
04. ábra: Körosztály
05. ábra: Háromszög osztály
06. ábra: Késői kötés fő programja
A fenti program szerint az Shape osztálynak van egy rajzolási módszere. Osztály Kör és osztály Háromszög osztály kiterjeszti az Alak osztályt. Ezért ez a két osztály örökölheti a Shape osztály attribútumait és metódusait. A Shape Class az alaposztály. A Circle és Triangle osztályok származtatott osztályok. A Circle osztály és a Triangle osztály is rendelkezik a rajzolási módszerrel, saját implementációkkal. Tehát a Shape osztály rajzolási metódusát felülírják a származtatott osztályok rajzolási metódusai.
A főprogramban egy Shape típusú referenciaváltozó jön létre. Fordításkor a fordító csak az alaposztály-rajzi metódusra hivatkozik. Futás közben különböző rajzolási módszerek fognak végrehajtani. Először az s a Shape típusú objektumra mutat. Tehát a Shape osztály rajzolási metódusa meghívásra kerül. Ekkor az s a Circle típusú objektumra mutat, és meghívja a Circle osztály rajzolási metódusát. Végül az s a Triangle típusú objektumra mutat, és meghívja a rajzolási metódust a Triangle osztályban. A metódusok meghívása az objektumoktól függően történik. Ezért az objektumot a késői kötésben a metódushívás feloldására használják. A kötéshez szükséges információk futási időben rendelkezésre állnak, így a végrehajtás sebessége lassabb a korai kötéshez képest.
Mi a hasonlóság a korai kötés és a késői kötés között?
Mind a korai kötés, mind a késői kötés kapcsolatban áll a polimorfizmussal, amely az OOP egyik pillére
Mi a különbség a korai kötés és a késői kötés között?
Korai kötés vs késői kötés |
|
Az osztályinformációk felhasználásának folyamatát a fordítási időben fellépő metódushívások megoldására korai kötésnek nevezzük. | Azt a folyamatot, amelynek során az objektumot használjuk a futási időben előforduló metódushívások feloldására, késői kötésnek nevezzük. |
A kötés ideje | |
A korai kötés a fordítási időben történik. | Késői kötés a futásidőben történik. |
Funkcionalitás | |
Az Early Binding az osztályinformációkat használja a metódushívás feloldásához. | A késői kötés az objektumot használja a metódushívás feloldására. |
Szinonimák | |
A korai kötés statikus kötésként is ismert.. | A késői kötés dinamikus kötésként is ismert. |
Előfordulás | |
A túlterhelési módszerek korai kötéssel vannak összekötve. | A felülírt módszerek késői kötést használnak. |
Végrehajtási sebesség | |
A végrehajtási sebesség gyorsabb a korai kötésben. | A végrehajtási sebesség alacsonyabb a késői kötésben. |
Összefoglaló – Korai és késői kötés
Az OOP-t általában szoftverfejlesztésre használják. Az OOP egyik fő pillére a polimorfizmus. A korai kötés és a késői kötés ehhez kapcsolódik. A korai kötés a fordítási időben, míg a késői kötés futási időben történik. A módszer túlterhelése esetén a kötés a korai kötés használatával történik. A metódus felülbírálásakor a kötés a késői kötés használatával történik. Az Early Binding és a Late Binding között az a különbség, hogy az Early Binding az osztályinformációkat használja a metódushívás feloldásához, míg a Késői kötés az objektumot használja a metódushívás feloldásához.