Különbség Az Felülbírálás és A Túlterhelés Között

Különbség Az Felülbírálás és A Túlterhelés Között
Különbség Az Felülbírálás és A Túlterhelés Között

Videó: Különbség Az Felülbírálás és A Túlterhelés Között

Videó: Különbség Az Felülbírálás és A Túlterhelés Között
Videó: AWOLNATION - Run (Beautiful Things) (Official) 2024, November
Anonim

Felülbírálás vs túlterhelés

A metódus felülbírálása és a módszer túlterhelése két fogalom / technika / jellemző, amely néhány programozási nyelvben megtalálható. Mindkét koncepció lehetővé teszi a programozó számára, hogy különböző megvalósításokat biztosítson az azonos nevű módszerekhez. A metódus felülbírálása lehetővé teszi a programozó számára, hogy egy alosztályon belül alternatív megvalósítást nyújtson a szuper osztályán belül már definiált módszerhez. A módszer túlterhelése lehetővé teszi a programozó számára, hogy különböző megvalósításokat biztosítson több, ugyanazon névvel rendelkező (ugyanazon osztályon belüli) metódus számára.

Mi az az elsődleges?

Mint fent említettük, egy osztály kiterjeszthet egy szuper osztályt vagy egy szülő osztályt objektumorientált programozási nyelveken. A gyermekosztálynak lehetnek saját módszerei, vagy adott esetben saját megvalósításai lehetnek a szülő osztályában (vagy az egyik nagyszülő osztályban) már definiált módszerekre. Tehát amikor ez utóbbi történik, akkor ezt metódus felülbírálásnak nevezzük. Más szóval, ha a gyermekosztály megvalósítást nyújt egy olyan módszerrel, amelynek azonos aláírása és visszatérési típusa van, mint az egyik szülőosztályában már definiált módszer, akkor azt mondják, hogy ezt a módszert felülírja (helyettesíti) a gyermekosztály megvalósítása. Tehát, ha van egy felülbírált módszer egy osztályban, akkor a futásidejű rendszernek kell eldöntenie, hogy melyik módszer megvalósítását használja. Ezt a problémát úgy oldják meg, hogy megvizsgálják az objektum pontos típusát, amelyre felhívják. Ha a szülőosztály egy objektumát használják az felülbírált módszer meghívására, akkor a szülő osztályban található megvalósítást használják. Hasonlóképpen, ha a gyermekosztály egyik objektuma, akkor a gyermekosztály megvalósítását használják. A modern programozási nyelvek, mint a Java, az Eifell, a C ++ és a Python, lehetővé teszik a módszer felülírását.

Mi az a túlterhelés?

A módszer túlterhelése egy olyan programozási nyelv, amelyet több programozási nyelv hoz létre ugyanazzal a névvel, de különböző bemeneti és kimeneti típusokkal. A modern programozási nyelvekben, mint a Java, a C #, a C ++ és a VB. NET, ez a szolgáltatás elérhető. Túlterhelhet egy metódust, ha létrehoz egy másik metódust ugyanazzal a névvel, de más metódus aláírással vagy más visszatérési típussal (vagy mindkettővel). Például, ha ugyanazon osztályon belül van a method1 (type1 t1) és a method1 (type2 t2), akkor azok túlterheltek. Ekkor a rendszernek el kell döntenie, hogy melyiket hajtja végre, amikor hívják. Ez a megkülönböztetés úgy történik, hogy megnézzük a módszerhez átadott paraméter (ek) típusát. Ha az argumentum type1, akkor az első megvalósítást hívjuk meg, míg ha a type2-t, akkor a második implementációt hívjuk meg.

Mi a különbség a felülbírálás és a túlterhelés között?

Habár a módszer felülbírálását és a módszer túlterhelését használják a különböző megvalósításokkal rendelkező módszer biztosításához, e két fogalom / technika között kulcsfontosságú különbségek vannak. Először is, a módszer felülbírálásának tantárgyai mindig különböző osztályokba tartoznak, míg a módszer túlterhelésének tantárgyak ugyanazon osztályba tartoznak. Ez azt jelenti, hogy a felülbírálás csak objektumorientált programozási nyelveken lehetséges, amelyek lehetővé teszik az öröklést, míg a túlterhelés nem objektum-orientált nyelven is elérhető. Más szavakkal, felülírsz egy módszert a szuper osztályban, de túlterhelsz egy módszert a saját osztályodon belül.

Egy másik különbség az, hogy az felülbírált metódusoknak ugyanaz a metódusnevük, metódus aláírásuk és visszatérési típusuk, de a túlterhelt metódusoknak különbözniük kell akár az aláírás, akár a visszatérés típusától (a névnek meg kell egyeznie). Két felülbírált módszer megkülönböztetése érdekében az objektum pontos típusa, amelyet a metódus id meghívására használnak, míg két túlterhelt módszer megkülönböztetéséhez a paraméterek típusait használják. Egy másik kulcsfontosságú különbség az, hogy a túlterhelés fordításkor, míg az felülírás futás közben megoldódik.

Ajánlott: