4. Интерфейслар билан ишлаш


Download 36.6 Kb.
bet1/6
Sana13.10.2023
Hajmi36.6 Kb.
#1701451
  1   2   3   4   5   6
Bog'liq
Интерфейслар


4. Интерфейслар билан ишлаш
1. Интерфейсларнинг мақсади. C# да интерфейслардан фойдаланиш хусусиятлари
Интерфейс берилган интерфейсни мерос қилиб оладиган (амалга оширувчи) синфда амалга оширилиши керак бўлган методлар (хусусиятлар, индексаторлар, ҳодисалар) тўпламини белгилайди. Интерфейслар синфларга ушбу синфларда нимани амалга ошириш кераклигини айтиш учун ишлатилади. Методларни (хусусиятлар, индексаторлар, ҳодисалар) амалга ошириш керак. Шундай қилиб, интерфейс аниқ амалга оширишсиз функсионаллик имкониятни тавсифлайди. Бошқача қилиб айтганда, интерфейс спецификацияни (таснифлашни) белгилайди, лекин амалга оширишни емас.
Интерфейслардан фойдаланиш бир нечта меросга муқобил (алтернатива) яратиш керак бўлган ҳолларда самарали бўлади. Ҳар қандай синф бир нечта интерфейсларни мерос (авлод) қилиб олиши мумкин. Бундай ҳолда, мерос қилиб олинган интерфейсларнинг барча методлари синфда амалга оширилиши керак.
Структура, худди синф каби, исталган сонли интерфейсларни амалга ошириши мумкин.
Интерфейс хусусиятлари:
• интерфейсда унинг элементларини амалга оширишни киритиш мумкин эмас;
• интерфейснинг намунасини (нусхасини) яратиш мумкин эмас;
• интерфейсга ҳавола яратишингиз мумкин;
• интерфейсда конструкторлар бўлиши мумкин эмас;
• интерфейс майдонларни ўз ичига олмайди;
• интерфейсда операторни қайтаюклаш амалга оширилмайди;
• барча интерфейс методллари келишув бўйича public деб эълон қилинади.

Авлод синфларда интерфейслардан фойдаланилганда:
• уни амалга ошириш жараёнида метод учун кириш модификаторини ўзгартириш тақиқланади;
• интерфейс методларини virtual деб эълон қилиш мумкин эмас;
• Static калит сўзи билан интерфейс методларини эълон қилиш тақиқланади (статик сифатида).

2. Какое отличие между интерфейсами и абстрактными классами?
В языке программирования C# существуют следующие отличия между интерфейсами и абстрактными классами:

  1. В интерфейсе запрещено прописывать реализацию его членов. В абстрактном классе часть членов может иметь реализацию. Иными словами, интерфейс это тот же абстрактный класс, у которого все методы абстрактные.

  2. В интерфейсе запрещено описывать поля (переменные, объекты), в абстрактном классе можно.

  3. В интерфейсе запрещено объявление перегруженных операторов. В абстрактном классе при соблюдении некоторых условий допускается объявление перегруженных операторов.

  4. Интерфейс не может содержать конструктор. В абстрактном классе может быть объявлен конструктор.

  5. Любой класс может быть унаследован от нескольких интерфейсов. При этом любой класс может быть унаследован только от одного абстрактного класса (и не более).

  6. В интерфейсе запрещено объявлять статические элементы (с ключевым словом static). В абстрактном классе допускается объявление статических элементов.

  7. В интерфейсе все элементы считаются как public, и поэтому модификаторы доступа в интерфейсе не используются. В абстрактном классе элементы могут быть объявлены с любым модификатором доступа (private, protected, public).



Download 36.6 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling