Неліктен C# тілінде бірнеше мұрагерлік мүмкін емес?
Неліктен C# тілінде бірнеше мұрагерлік мүмкін емес?

Бейне: Неліктен C# тілінде бірнеше мұрагерлік мүмкін емес?

Бейне: Неліктен C# тілінде бірнеше мұрагерлік мүмкін емес?
Бейне: Урок №1. Базовые операции с фото и видео. BeyondRobotics 2024, Мамыр
Anonim

C# жасайды емес қолдау көрсету көп тұқым қуалаушылық , өйткені олар бұл қосуды негіздеді көп тұқым қуалаушылық тым аз пайда бере отырып, C# тіліне тым көп күрделілік қосты. C# тілінде сыныптар тек қана рұқсат дейін мұрагер жалғыз ата-аналық сыныптан, ол жалғыз деп аталады мұрагерлік.

Дәл солай, неге көп мұраға рұқсат етілмейді?

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

Сондай-ақ сұрақ туындауы мүмкін, біз C# тілінде бірнеше интерфейстерді мұра ете аламыз ба? Интерфейстер қандай сыныпқа жататындығы туралы келісімдер немесе «келісімшарттар» сияқты жасай алады . Сабақтар алады бар бірнеше интерфейстер , бірақ сыныптар мүмкін емес бірнеше тұқым қуалайды сыныптар. Сабақтар мұрагерлік астам бір класс ретінде белгілі бірнеше - мұрагерлік . C# жасайды рұқсат бермеу бірнеше - мұрагерлік.

Мұнда C# көп мұрагерлік жүйесіндегі Алмаз мәселесі қандай?

« алмаз мәселесі « бұл екі В және С кластары болғанда пайда болатын екіұштылық мұрагер А және Д сыныбынан мұра етеді В және С екеуінен де. Егер А-да В және С қайта анықтаған және D оны қайта анықтамайтын әдіс болса, онда әдістің қай класы D жасайды мұрагер : В-дікі ме, әлде С-дікі ме?

Мысалмен C# тілінде бірнеше мұрагерлік дегеніміз не?

C# мүмкіндік бермейді көп тұқым қуалаушылық сыныптармен, бірақ оны интерфейс арқылы жүзеге асыруға болады. Мұның артындағы себеп: Көп тұқым қуалаушылық аз пайдамен тым көп күрделілік қосыңыз. Қарама-қайшылықты базалық сынып мүшелерінің үлкен мүмкіндігі бар. Мұрагерлік интерфейсімен бірдей жұмысты қамтамасыз етеді көп тұқым қуалаушылық.

Ұсынылған: