Nima uchun C# da bir nechta meros qilib olish mumkin emas?
Nima uchun C# da bir nechta meros qilib olish mumkin emas?

Video: Nima uchun C# da bir nechta meros qilib olish mumkin emas?

Video: Nima uchun C# da bir nechta meros qilib olish mumkin emas?
Video: ЕР ДУМАЛОҚ ЭМАС - "БИЗНИ АЛДАШИБДИ" - YER DUMALOQ EMAS - "BIZNI ALDASHIBDI" 2024, May
Anonim

C# qiladi emas qo'llab-quvvatlash ko'p meros , chunki ular bu qo'shimchani asoslashdi ko'p meros juda kam foyda keltirgan holda C# ga juda ko'p murakkablik qo'shdi. C# da sinflar faqat ruxsat berilgan uchun meros bitta ota-ona sinfidan, yakka deb ataladi meros olish.

Shunday ekan, nega bir nechta merosga ruxsat berilmaydi?

Java qo'llab-quvvatlaydi ko'p meros faqat interfeyslar orqali. Sinf istalgan sonli interfeyslarni amalga oshirishi mumkin, lekin faqat bitta sinfni kengaytirishi mumkin. Bir nechta meros qo'llab-quvvatlanmaydi chunki bu halokatli olmos muammosiga olib keladi. Interfeys - bu sizning sinfingiz amalga oshirishi kerak bo'lgan narsalar shartnomasi.

Bundan tashqari, biz C# da bir nechta interfeyslarni meros qilib olamizmi? Interfeyslar qanday sinfga tegishli shartnomalar yoki "shartnomalar" ga o'xshaydi qila olmoq . Sinflar mumkin bor bir nechta interfeyslar , lekin sinflar mumkin emas bir nechta meros oladi sinflar. Sinflar meros olish dan ortiq bitta sinf sifatida tanilgan bir nechta - meros olish . C# qiladi ruxsat bermaslik bir nechta - meros olish.

Bu erda bir nechta meros C# da Diamond muammosi nima?

" olmos muammosi " bu ikki sinf B va C bo'lganda paydo bo'ladigan noaniqlik meros A va D sinfidan meros oladi B va C dan. Agar A da B va C bekor qilgan va D uni bekor qilmagan usul mavjud bo'lsa, u holda usulning qaysi klassi D qiladi. meros : B niki yoki C niki?

Misol bilan C# da bir nechta meros nima?

C# ruxsat bermaydi ko'p meros sinflar bilan, lekin interfeys yordamida amalga oshirilishi mumkin. Buning sababi: Ko'p meros kam foyda bilan juda ko'p murakkablik qo'shing. Qarama-qarshi asosiy sinf a'zolarining katta imkoniyatlari mavjud. Meros olish Interfeys bilan bir xil vazifani ta'minlaydi ko'p meros.

Tavsiya: