Қайта анықтау және шамадан тыс жүктеу арасындағы айырмашылық

Қайта анықтау және шамадан тыс жүктеу арасындағы айырмашылық
Қайта анықтау және шамадан тыс жүктеу арасындағы айырмашылық

Бейне: Қайта анықтау және шамадан тыс жүктеу арасындағы айырмашылық

Бейне: Қайта анықтау және шамадан тыс жүктеу арасындағы айырмашылық
Бейне: Түнге арналған әңгімелер. КУМИД СИНДРОМЫ. Қорқынышты әңгімелер. Қорқынышты әңгімелер. Махаббат. 2024, Шілде
Anonim

Басқа анықтау және шамадан тыс жүктеу

Басқа анықтау әдісі және шамадан тыс жүктеу әдісі кейбір бағдарламалау тілдерінде кездесетін екі ұғым/техника/мүмкіндік. Екі тұжырымдама да бағдарламашыға бірдей атаудағы әдістер үшін әртүрлі іске асыруды қамтамасыз етуге мүмкіндік береді. Әдісті қайта анықтау бағдарламашыға оның супер классында бұрыннан анықталған әдіске қосалқы сынып ішінде балама іске асыруды қамтамасыз етуге мүмкіндік береді. Әдістің шамадан тыс жүктелуі бағдарламашыға бірдей атаумен (бір сыныпта) бірнеше әдістерге әртүрлі іске асыруларды қамтамасыз етуге мүмкіндік береді.

Басқа анықтау дегеніміз не?

Жоғарыда айтылғандай, сынып объектіге бағытталған бағдарламалау тілдерінде супер классты немесе ата-аналық сыныпты кеңейте алады. Еншілес сыныптың өз әдістері болуы мүмкін немесе оның ата-аналық сыныбында (немесе оның ата-аналық сыныптарының бірінде) бұрыннан анықталған әдістерге өз енгізулері болуы мүмкін. Сондықтан соңғысы орын алғанда, ол әдісті қайта анықтау деп аталады. Басқаша айтқанда, егер еншілес сынып өзінің ата-аналық сыныптарының бірінде бұрыннан анықталған әдіс сияқты бірдей қолтаңбасы және қайтару түрі бар әдіске енгізуді қамтамасыз етсе, бұл әдіс еншілес сыныпты жүзеге асыру арқылы қайта анықталған (алмастырылған) деп айтылады.. Сонымен, егер сыныпта қайта анықталған әдіс болса, орындау уақыты жүйесі қандай әдісті іске асыру қолданылатынын шешуі керек. Бұл мәселе оны шақыру үшін пайдаланылатын нысанның нақты түрін қарау арқылы шешіледі. Егер ата-аналық сыныптың нысаны қайта анықталған әдісті шақыру үшін пайдаланылса, онда ата-аналық сыныптағы іске асыру пайдаланылады. Сол сияқты, егер ол еншілес сыныптың объектісі пайдаланылса, онда еншілес сыныптың іске асырылуы қолданылады. Java, Eifell, C++ және Python сияқты заманауи бағдарламалау тілдері әдісті қайта анықтауға мүмкіндік береді.

Артық жүктелу дегеніміз не?

Әдістің шамадан тыс жүктелуі - бірдей атаумен, бірақ енгізу және шығару түрлері әртүрлі бірнеше әдісті жасау үшін кейбір бағдарламалау тілдері қамтамасыз ететін мүмкіндік. Java, C, C++ және VB. NET сияқты заманауи бағдарламалау тілдерінде бұл мүмкіндік қол жетімді. Бірдей атпен, бірақ басқа әдіс қолтаңбасы немесе басқа қайтару түрі (немесе екеуі де) бар басқа әдісті жасау арқылы әдісті шамадан тыс жүктеуге болады. Мысалы, бір сынып ішінде әдіс1(түр1 t1) және әдіс1(түр2 t2) болса, олар шамадан тыс жүктеледі. Содан кейін жүйе шақырылған кезде қайсысын орындау керектігін шешуі керек. Бұл дифференциалдау әдіске берілген параметр(лер) түрін қарау арқылы жасалады. Егер аргумент 1 типті болса, онда бірінші іске асыру шақырылады, ал егер ол 2 типті болса, екінші іске асыру шақырылады.

Қайта анықтау мен шамадан тыс жүктеудің айырмашылығы неде?

Әдісті қайта анықтау және әдісті шамадан тыс жүктеу әртүрлі іске асырулары бар әдісті қамтамасыз ету үшін пайдаланылғанымен, осы екі ұғым/әдіс арасында негізгі айырмашылықтар бар. Ең алдымен, әдісті қайта анықтау субъектілері әрқашан әртүрлі сыныптарда қалады, ал әдісті шамадан тыс жүктеу субъектілері бір сыныпта қалады. Бұл қайта анықтау мұраға мүмкіндік беретін объектіге бағытталған бағдарламалау тілдерінде ғана мүмкін екенін білдіреді, ал шамадан тыс жүктеу объектіге бағытталған емес тілде де қол жетімді болуы мүмкін. Басқаша айтқанда, супер класстағы әдісті қайта анықтайсыз, бірақ өз сыныбыңыздағы әдісті шамадан тыс жүктейсіз.

Тағы бір айырмашылық мынада, қайта анықталған әдістерде бірдей әдіс атауы, әдіс қолтаңбасы және қайтару түрі болады, бірақ шамадан тыс жүктелген әдістер қолтаңбада немесе қайтару түрінде әр түрлі болуы керек (атауы бірдей болуы керек). Екі қайта анықталған әдістерді ажырату үшін пайдаланылатын әдістер идентификаторын шақыру үшін пайдаланылатын нысанның нақты түрі, ал екі шамадан тыс жүктелген әдістерді саралау үшін параметрлердің түрлері пайдаланылады. Тағы бір маңызды айырмашылық, шамадан тыс жүктеу компиляция уақытында шешіледі, ал қайта анықтау орындалу уақытында шешіледі.

Ұсынылған: