Oddiy belgilash va ortiqcha yuklash oʻrtasidagi farq

Oddiy belgilash va ortiqcha yuklash oʻrtasidagi farq
Oddiy belgilash va ortiqcha yuklash oʻrtasidagi farq

Video: Oddiy belgilash va ortiqcha yuklash oʻrtasidagi farq

Video: Oddiy belgilash va ortiqcha yuklash oʻrtasidagi farq
Video: EXCEL dasturida jadvallar bilan ishlash 2024, Iyul
Anonim

Oddiy belgilash va haddan tashqari yuklash

Oddiy belgilash usuli va ortiqcha yuklash usuli ba'zi dasturlash tillarida joylashgan ikkita tushuncha/texnika/xususiyatdir. Ikkala tushuncha ham dasturchiga bir xil nomdagi usullar uchun turli xil ilovalarni taqdim etish imkonini beradi. Usulni bekor qilish dasturchiga o'zining super sinfida allaqachon aniqlangan usulga quyi sinf ichida muqobil amalga oshirish imkonini beradi. Usulni haddan tashqari yuklash dasturchiga bir xil nomdagi (bir sinf ichida) bir nechta usullarga turli xil ilovalarni taqdim etish imkonini beradi.

Oddiga belgilash nima?

Yuqorida aytib o'tilganidek, sinf ob'ektga yo'n altirilgan dasturlash tillarida super sinfni yoki ota-sinfni kengaytirishi mumkin. Bolalar sinf o'z usullariga ega bo'lishi mumkin yoki ixtiyoriy ravishda o'zining ota-sinfida (yoki uning ota-ona sinflaridan birida) allaqachon belgilangan usullarga o'z ilovalariga ega bo'lishi mumkin. Shunday qilib, ikkinchisi sodir bo'lganda, bu usulni bekor qilish deb ataladi. Boshqacha qilib aytadigan bo'lsak, agar bolalar sinfi o'zining asosiy sinflaridan birida allaqachon aniqlangan usul bilan bir xil imzo va qaytish turiga ega bo'lgan usulni amalga oshirishni ta'minlasa, bu usul bolalar sinfini amalga oshirish orqali bekor qilingan (almashtirilgan) deyiladi.. Shunday qilib, agar sinfda bekor qilingan usul mavjud bo'lsa, ish vaqti tizimi qaysi usulni qo'llashni hal qilishi kerak. Ushbu muammo uni chaqirish uchun ishlatiladigan ob'ektning aniq turini ko'rib chiqish orqali hal qilinadi. Agar ota-klassning ob'ekti bekor qilingan usulni chaqirish uchun ishlatilsa, u holda ota-klassdagi amalga oshirish ishlatiladi. Xuddi shunday, agar u foydalaniladigan bolalar sinfining ob'ekti bo'lsa, u holda bolalar sinfining amalga oshirilishi ishlatiladi. Java, Eifell, C++ va Python kabi zamonaviy dasturlash tillari usulni bekor qilishga imkon beradi.

Haddan tashqari yuklanish nima?

Usulni haddan tashqari yuklash ba'zi dasturlash tillari tomonidan bir xil nomli, lekin kirish va chiqish turlari har xil bo'lgan bir nechta usullarni yaratish uchun taqdim etilgan xususiyatdir. Java, C, C++ va VB. NET kabi zamonaviy dasturlash tillarida bu xususiyat mavjud. Xuddi shu nomli, lekin boshqa usul imzosi yoki boshqa qaytish turi (yoki ikkalasi) bilan boshqa usul yaratish orqali usulni ortiqcha yuklashingiz mumkin. Misol uchun, agar sizda bir xil sinf ichida usul1 (turi 1 t1) va usul1 (2 t2) mavjud bo'lsa, ular haddan tashqari yuklangan. Keyin tizim chaqirilganda qaysi biri bajarilishini hal qilishi kerak bo'ladi. Ushbu farqlash usulga kiritilgan parametr(lar) turiga qarab amalga oshiriladi. Agar argument 1 turdagi bo'lsa, u holda birinchi amalga oshirish chaqiriladi, agar u 2 turdagi bo'lsa, ikkinchi amalga oshirish chaqiriladi.

Oddiy belgilash va ortiqcha yuklash oʻrtasidagi farq nima?

Usulni bekor qilish va usulni haddan tashqari yuklash turli xil ilovalar bilan usulni ta'minlash uchun ishlatilsa-da, bu ikki tushuncha/texnika o'rtasida asosiy farqlar mavjud. Birinchidan, usulni bekor qilish sub'ektlari har doim turli sinflar ichida qoladi, usulni ortiqcha yuklash sub'ektlari esa bir sinfda qoladi. Bu shuni anglatadiki, bekor qilish faqat merosga ruxsat beruvchi ob'ektga yo'n altirilgan dasturlash tillarida mumkin, ortiqcha yuklash esa ob'ektga yo'n altirilmagan tilda ham mavjud bo'lishi mumkin. Boshqacha qilib aytganda, siz super sinfdagi usulni bekor qilasiz, lekin oʻz sinfingizdagi usulni ortiqcha yuklaysiz.

Yana bir farq shundaki, bekor qilingan usullar bir xil usul nomi, usul imzosi va qaytarish turiga ega, lekin ortiqcha yuklangan usullar imzo yoki qaytarish turida farq qilishi kerak (nom bir xil boʻlishi kerak). Ikki bekor qilingan usullarni farqlash uchun foydalanilgan usullar identifikatorini chaqirish uchun ishlatiladigan ob'ektning aniq turi, ikkita haddan tashqari yuklangan usullarni farqlash uchun parametrlar turlari qo'llaniladi. Yana bir asosiy farq shundaki, ortiqcha yuklash kompilyatsiya vaqtida hal qilinadi, bekor qilish esa ish vaqtida hal qilinadi.

Tavsiya: