Интерфейс хусусиятлари:
• интерфейсда унинг элементларини амалга оширишни киритиш мумкин эмас;
• интерфейснинг намунасини (нусхасини) яратиш мумкин эмас;
• интерфейсга ҳавола яратишингиз мумкин;
• интерфейсда конструкторлар бўлиши мумкин эмас;
• интерфейс майдонларни ўз ичига олмайди;
• интерфейсда операторни қайтаюклаш амалга оширилмайди;
• барча интерфейс методллари келишув бўйича public деб эълон қилинади.
Авлод синфларда интерфейслардан фойдаланилганда:
• уни амалга ошириш жараёнида метод учун кириш модификаторини ўзгартириш тақиқланади;
• интерфейс методларини virtual деб эълон қилиш мумкин эмас;
• Static калит сўзи билан интерфейс методларини эълон қилиш тақиқланади (статик сифатида).
2. Какое отличие между интерфейсами и абстрактными классами?
В языке программирования C# существуют следующие отличия между интерфейсами и абстрактными классами:
В интерфейсе запрещено прописывать реализацию его членов. В абстрактном классе часть членов может иметь реализацию. Иными словами, интерфейс это тот же абстрактный класс, у которого все методы абстрактные.
В интерфейсе запрещено описывать поля (переменные, объекты), в абстрактном классе можно.
В интерфейсе запрещено объявление перегруженных операторов. В абстрактном классе при соблюдении некоторых условий допускается объявление перегруженных операторов.
Интерфейс не может содержать конструктор. В абстрактном классе может быть объявлен конструктор.
Любой класс может быть унаследован от нескольких интерфейсов. При этом любой класс может быть унаследован только от одного абстрактного класса (и не более).
В интерфейсе запрещено объявлять статические элементы (с ключевым словом static). В абстрактном классе допускается объявление статических элементов.
В интерфейсе все элементы считаются как public, и поэтому модификаторы доступа в интерфейсе не используются. В абстрактном классе элементы могут быть объявлены с любым модификатором доступа (private, protected, public).
Do'stlaringiz bilan baham: |