Съдържание:
- Определение - Какво означава реализация на интерфейс?
- Techopedia обяснява изпълнението на интерфейса
Определение - Какво означава реализация на интерфейс?
Реализацията на интерфейса в C # се отнася до наследяването на интерфейс от структура или клас, която осигурява функционалността на декларираните в интерфейса членове. Членовете на реализирания интерфейс могат да включват методи, свойства, индекси и събития.
По принцип интерфейсът представлява договор, който трябва да се спазва от клас или структура, която изпълнява всички членове, посочени в интерфейса. Основните предимства на внедряването на интерфейса включват гъвкавост, ниско свързване, висока кохезия и полиморфно поведение.
В C #, реализацията на интерфейс позволява на клас да наследи от множество интерфейси, вместо от няколко класа, така че повече от едно поведение може да бъде наследено чрез множество интерфейси, които споделят само подписи на метод. Интерфейсът може да се реализира като свойство, за да се определи дали свойството е четене-запис, само за четене или само за запис. Интерфейсът може да бъде реализиран изрично, за да скрие член и да го замести с друг. За разлика от Java, изричното изпълнение на C # интерфейс позволява на множество интерфейси с едно и също име на метод и подписи, да имат различни реализации без сблъсък на име и да предоставят различен резултат въз основа на текущия състав на обекта.
Techopedia обяснява изпълнението на интерфейса
Подобно на абстрактния клас, интерфейсът не осигурява изпълнение по подразбиране. Член на клас или структура, който реализира член на интерфейс, трябва да е публичен, нестатичен и да притежава същото име и подпис като този в интерфейса.
Например, интерфейс IAccount може да бъде реализиран от клас, SavingAccount, който реализира членовете на IAccount, които могат да включват BalanceAmount, DateOfOpening и т.н., като неговите свойства и методи като PrintStatement, CalculateInterest и т.н.
Реализацията на интерфейса може да бъде имплицитна, когато базов клас на производен клас вече реализира интерфейса. Не е необходимо всички базови интерфейси да бъдат изрично посочени в списъка на базовия клас на производния клас. В допълнение, производният клас може да промени поведението на интерфейса, което е дефинирано вече в базовия клас, чрез презаписване на виртуалните членове в извлечения клас.
Изпълнението на интерфейса е изрично, когато членове на два или повече интерфейса, които имат едно и също име с еднакъв подпис, но изпълняват две различни функции, се наследяват от клас или структура, която изпълнява всеки член изрично. Такъв член се именува с името на интерфейса и период и може да бъде достъпен само чрез инстанция на интерфейса. За разлика от неявните методи, явните методи не могат да бъдат абстрактни или виртуални.
