Oorheersing teenoor oorlaai
Die metode Oorheersing en metode Oorlading is twee konsepte/tegnieke/kenmerke wat in sommige programmeertale voorkom. Beide konsepte laat die programmeerder toe om verskillende implementerings vir metodes met dieselfde naam te verskaf. Metode-oorheersing laat die programmeerder toe om 'n alternatiewe implementering binne 'n subklas te verskaf aan 'n metode wat reeds binne sy superklas gedefinieer is. Metodeoorlading laat die programmeerder toe om verskillende implementerings aan verskeie metodes met dieselfde naam (binne dieselfde klas) te verskaf.
Wat is oorheersend?
Soos hierbo genoem, kan 'n klas 'n superklas of 'n ouerklas uitbrei in objekgeoriënteerde programmeertale.'n Kinderklas kan sy eie metodes hê of kan opsioneel sy eie implementerings hê op metodes wat reeds in sy ouerklas (of een van sy grootouerklasse) gedefinieer is. Wanneer laasgenoemde dus gebeur, word dit metode-oorheersing genoem. Met ander woorde, as die kinderklas 'n implementering aan 'n metode verskaf met dieselfde handtekening en terugkeertipe as 'n metode wat reeds in een van sy ouerklasse gedefinieer is, word gesê dat daardie metode deur die implementering van die kinderklas oorheers (vervang) word.. Dus, as daar 'n oorheerste metode in 'n klas is, sal die looptydstelsel moet besluit watter metode-implementering gebruik word. Hierdie probleem word opgelos deur te kyk na die presiese tipe voorwerp wat gebruik word om dit op te roep. As 'n objek van die ouerklas gebruik word om die ignoreerde metode op te roep, word die implementering in die ouerklas gebruik. Net so, as dit 'n objek van die kinderklas is wat gebruik word, dan word die kinderklas se implementering gebruik. Moderne programmeertale soos Java, Eifell, C++ en Python laat metode-oorheersing toe.
Wat is oorlaai?
Metode-oorlading is 'n kenmerk wat deur sommige programmeertale verskaf word om meer as een metode met dieselfde naam te skep, maar met verskillende invoer- en uitvoertipes. In moderne programmeertale soos Java, C, C++ en VB. NET is hierdie funksie beskikbaar. Jy kan 'n metode oorlaai deur 'n ander metode met dieselfde naam te skep, maar met 'n ander metode handtekening of 'n ander tipe terugkeer (of albei). Byvoorbeeld, as jy metode1(tipe1 t1) en metode1(tipe2 t2) binne dieselfde klas het, dan is hulle oorlaai. Dan sal die stelsel moet besluit watter een uitgevoer moet word wanneer dit geroep word. Hierdie differensiasie word gemaak deur te kyk na die tipe parameter(s) wat in die metode deurgegee is. As die argument van tipe1 is, word die eerste implementering opgeroep, terwyl as dit van tipe2 is, dan word die tweede implementering genoem.
Wat is die verskil tussen Oorheersing en Oorlaai?
Alhoewel metode-oorheersing en metode-oorlading gebruik word om 'n metode met verskillende implementerings te verskaf, is daar sleutelverskille tussen hierdie twee konsepte/tegnieke. Eerstens bly vakke van metode-oorheersing altyd binne verskillende klasse, terwyl vakke van metode-oorlading binne dieselfde klas bly. Dit beteken om te ignoreer is slegs moontlik in objekgeoriënteerde programmeertale wat oorerwing moontlik maak, terwyl oorlading ook in 'n nie-objekgeoriënteerde taal beskikbaar kan wees. Met ander woorde, jy ignoreer 'n metode in die superklas, maar jy oorlaai 'n metode binne jou eie klas.
Nog 'n verskil is dat oorgeskryfde metodes dieselfde metodenaam, metodehandtekening en die terugkeertipe het, maar oorlaaide metodes moet verskil in óf die handtekening óf die terugkeertipe (die naam moet dieselfde wees). Om te onderskei tussen twee oorheerste metodes, die presiese tipe objek wat gebruik word om die metodes id wat gebruik word op te roep, terwyl die tipes van die parameters gebruik word om tussen twee oorlaaide metodes te onderskei. Nog 'n belangrike verskil is dat oorlading tydens samestelling opgelos word, terwyl oorheersing tydens looptyd opgelos word.