Asosiy farq – OOPdagi polimorfizm va meros
Ob'ektga yo'n altirilgan dasturlash (OOP) odatda dasturiy ta'minotni ishlab chiqish uchun ishlatiladi. Ko'pgina dasturlash tillari ob'ektga yo'n altirilgan dasturlashni qo'llab-quvvatlaydi. Ob'ektga yo'n altirilgan dasturlash - bu sinflar va ob'ektlar yordamida dasturni loyihalash metodologiyasi. OOPdagi sinf - bu ob'ektni yaratish rejasi. Sinfning xususiyatlari va usullari mavjud. Ob'ekt - bu sinfning namunasi. OOP meros, polimorfizm, abstraktsiya va inkapsulyatsiya kabi to'rtta ustunni o'z ichiga oladi. Ushbu maqolada OOPda polimorfizm va meros o'rtasidagi farq muhokama qilinadi. OOPdagi polimorfizm va meros o'rtasidagi asosiy farq shundaki, Polimorfizm - bu ob'ektning bir necha yo'llar bilan harakat qilish qobiliyati va Meros - mavjud sinfning xususiyatlari va usullaridan foydalangan holda yangi sinf yaratish.
OOPda polimorfizm nima?
Polimorfizm bir nechta shakllarni bildiradi. Bitta ob'ekt bir nechta xatti-harakatlarga ega bo'lishi mumkin. Polimorfizmni ikki toifaga bo'lish mumkin. Ular haddan tashqari yuklanmoqda va bekor qilinmoqda.
Haddan tashqari yuklash
Quyidagi Java-da yozilgan dasturga qarang.
01-rasm: Ortiqcha yuklash
Yuqoridagi dasturga muvofiq A tipidagi ob'ekt yaratiladi. obj.sum(); u sum() usuli bilan bog'liq chiqishni beradi. obj.sum (2, 3) ni chaqirganda; u sum (int a, int b) bilan bog'liq chiqishni beradi. Bir xil ob'ektning vaziyatga qarab har xil xatti-harakatlarga ega ekanligini kuzatish mumkin. Agar bir xil nomga ega, lekin turli parametrlarga ega bo'lgan bir nechta usullar mavjud bo'lsa, bu ortiqcha yuk deb nomlanadi. U statik bogʻlanish yoki kompilyatsiya vaqti polimorfizmi sifatida ham tanilgan.
Bekor qilish
Polimorfizmning yana bir turi ustunlik qiladi. Java tilida yozilgan quyidagi dasturga qarang.
02-rasm: bekor qilish
Yuqoridagi dasturga koʻra, A sinfida display() usuli mavjud. B klassi A sinfidan tarqaladi. Shuning uchun A sinfidagi barcha usullarga B sinfi kirishi mumkin. Bu meros. Meros tushunchasi keyinroq tavsiflanadi.
B sinfida ham xuddi shunday displey() usuli mavjud. A tipidagi ob'ektni yaratishda va displey usulini chaqirganda, chiqish B ni beradi. A sinfini ko'rsatish usuli B sinfini ko'rsatish usuli bilan bekor qilinadi. Shunday qilib, chiqish B.
Bir xil nomli va bir xil parametrlarga ega, lekin ikki xil sinfda boʻlgan usullar mavjud boʻlsa va ular meros bilan bogʻlangan boʻlsa, bu bekor qilish deb nomlanadi. U shuningdek, kech bog'lanish, dinamik bog'lanish, ish vaqti polimorfizmi sifatida ham tanilgan. Haddan tashqari yuklash va bekor qilish polimorfizm deb ataladi. Bu ob'ektga yo'n altirilgan dasturlashning asosiy tushunchasi.
OOPda meros nima?
Quyidagi Java-da yozilgan dasturga qarang.
03-rasm: Merosga misol
Yuqoridagi dasturga muvofiq, A sinfida sum() usuli va B sinfida sub() usuli mavjud.
A sinfining sum() usuli B sinfida kengaytirilgan kalit soʻz yordamida ishlatilishi mumkin. Yangi sinf yaratish uchun mavjud sinfdagi xususiyatlar va usullardan qayta foydalanish meros sifatida tanilgan. Hatto B sinfida sum() usuli mavjud emas; u A sinfidan meros bo'lib qolgan. Meroslash kodni qayta ishlatish uchun foydalidir. Eski sinf asosiy sinf, supersinf yoki ota-sinf deb ataladi. Olingan sinf quyi sinf yoki pastki sinf deb ataladi.
Meros turlari
Merosning har xil turlari mavjud. Ular bir darajali meros, ko'p darajali meros, ko'p meros, ierarxik meros va gibrid meros.
Yagona meros
Yagona merosda bitta super sinf va bitta quyi sinf mavjud. Agar A klassi super sinf va B sinfi quyi sinf bo'lsa, A sinfining barcha xossalari va usullariga B sinfi kirishi mumkin. Faqat bitta daraja mavjud; shuning uchun u bir darajali meros deb ataladi.
Ko'p darajali meros
Ko'p bosqichli merosda uchta sinf darajasi mavjud. O'rta sinf super sinfdan meros bo'lib qoladi. Pastki sinf oraliq sinfdan meros oladi. Agar A, B va C kabi uchta sinf mavjud bo'lsa va A super sinf, B esa oraliq sinfdir. Keyin B A dan meros oladi va C B dan meros oladi, bu ko'p darajali merosdir.
Bir nechta meros
Koʻp merosda koʻplab super sinflar va bitta quyi sinf mavjud. Agar A, B, C va D deb nomlangan uchta super sinf mavjud bo'lsa, u holda D sinfi A, B va C dan meros bo'lishi mumkin. C++ dasturlash tilida bir nechta meros qo'llab-quvvatlanadi. Bu Java yoki C kabi dasturlash tillarida qo'llab-quvvatlanmaydi. Interfeyslar bu tillarda bir nechta merosni amalga oshirish uchun ishlatiladi.
Ierarxik meros
Agar super sinflar sifatida A deb nomlangan sinflar va B, C kichik sinflar bo'lsa, bu kichik sinflar A sinf xususiyatlari va usullarini meros qilib olishi mumkin. Bunday meros turi ierarxik meros sifatida tanilgan.
Gibrid meros
Gibrid meros sifatida tanilgan yana bir maxsus meros turi mavjud. Bu ko'p darajali va ko'p merosning kombinatsiyasi. Agar A, B, C va D sinflar bo‘lsa va B toifasi A dan, D esa B va C dan meros bo‘lsa, u gibrid meros hisoblanadi.
OOPda polimorfizm va meros oʻrtasidagi oʻxshashliklar qanday?
Ikkalasi ham obyektga yoʻn altirilgan dasturlash tushunchalari
OOPda polimorfizm va meros oʻrtasidagi farq nima?
Polimorfizm va OOPdagi meros |
|
Polimorfizm - bu ob'ektning turli yo'llar bilan harakat qilish qobiliyati. | Meros - bu mavjud sinfning xossalari va usullaridan foydalangan holda yangi sinf yaratish. |
Foydalanish | |
Polimorfizm ob'ektlar uchun kompilyatsiya vaqtida va bajarilish vaqtida qanday shakllarni chaqirish uchun ishlatiladi. | Meroslanish kodni qayta ishlatish uchun ishlatiladi. |
Amalga keltirish | |
Polimorfizm usullarda amalga oshiriladi. | Meroslanish sinflarda amalga oshiriladi. |
Turkumlar | |
Polimorfizmni ortiqcha yuklash va bekor qilishga ajratish mumkin. | Meros bir darajali, ko'p bosqichli, ierarxik, gibrid va ko'p merosga bo'linishi mumkin. |
Xulosa – OOPdagi polimorfizm va meros
Polimorfizm va meros ob'ektga yo'n altirilgan dasturlashda asosiy tushunchalardir. OOPda polimorfizm va meros o'rtasidagi farq shundaki, Polimorfizm bir nechta shakllar uchun umumiy interfeysdir va Meros - mavjud sinfning xususiyatlari va usullaridan foydalangan holda yangi sinf yaratish. Ikkala tushuncha ham dasturiy ta'minotni ishlab chiqishda keng qo'llaniladi.
OOPda PDF polimorfizmi va merosxoʻrlikni yuklab oling
Siz ushbu maqolaning PDF-versiyasini yuklab olishingiz va iqtibos keltirgan holda oflayn maqsadlarda foydalanishingiz mumkin. Iltimos, PDF versiyasini bu yerdan yuklab oling OOPda polimorfizm va meros o'rtasidagi farq