Эмне үчүн C# тилинде бир нече мурастоо мүмкүн эмес?
Эмне үчүн C# тилинде бир нече мурастоо мүмкүн эмес?

Video: Эмне үчүн C# тилинде бир нече мурастоо мүмкүн эмес?

Video: Эмне үчүн C# тилинде бир нече мурастоо мүмкүн эмес?
Video: How To Achieve Synchronization In C# While Doing Async Await Multithreaded Programming - .NET Core 2024, Апрель
Anonim

C# кылат жок колдоо көп тукум куучулук , анткени алар бул кошумчаны негиздешти көп тукум куучулук өтө аз пайда берип, C # үчүн өтө көп татаалдыкты кошкон. C# тилинде класстар гана уруксат чейин мурастоо жалгыз ата-энелер классынан, ал жалгыз деп аталат мурас.

Ошентип, эмне үчүн бир нече мураска жол берилбейт?

Java колдойт көп тукум куучулук интерфейстер аркылуу гана. Класс каалаган сандагы интерфейстерди ишке ашыра алат, бирок бир гана классты кеңейте алат. Бир нече мурас колдоого алынбайт анткени ал өлүмгө алып келе турган алмаз көйгөйүнө алып келет. Интерфейс - бул классыңыз ишке ашырууга тийиш болгон нерселердин келишими.

Ошондой эле суралышы мүмкүн, биз C# тилинде бир нече интерфейсти мурастай алабызбы? Interfaces класс деген келишимдер же "контракттар" сыяктуу кыла алат . Класстар болот бар бир нече интерфейстер , бирок класстар мүмкүн эмес көп тукум кууруу класстар. Класстар мурастоо ашык бир класс катары белгилүү көп - мурас . C# кылат уруксат бербейт көп - мурас.

Бул жерде, C# бир нече мурастоодогу Алмаз маселеси эмнеде?

" алмаз маселеси " бул эки класс В жана С болгондо пайда болгон эки ача түшүнүк мурастоо А жана Д классынан мурастайт В жана С экөөнөн тең. Эгерде Ада В жана С жокко чыгарган метод бар болсо, ал эми D аны жокко чыгарбаса, анда методдун кайсы классы D түзөт. мурастоо : Вныкыбы же Сбыбы?

Мисал менен C# бир нече мурас деген эмне?

C# жол бербейт көп тукум куучулук класстар менен, бирок аны интерфейс аркылуу ишке ашырууга болот. Мунун себеби: Көптөгөн мурас аз пайда менен өтө көп татаалдыкты кошуу. Базалык класстын мүчөлөрүнүн карама-каршылыктуу мүмкүнчүлүктөрү бар. Мурас Interface менен ошол эле ишти камсыз кылат көп тукум куучулук.

Сунушталууда: