Принципы объектно-ориентированного программирования




ГЛАВА 9 Интерфейсы


    ГЛАВА 9 Интерфейсы
    ГЛАВА 9 Интерфейсы Применение интерфейсов. Объявление интерфейсов. Реализация интерфейсов. Запрос о реализации интерфейса с помощью is. Запрос о реализации интерфейса с помощью as. Явная квалифика...
    Примечание
    Примечание Когда вы создаете интерфейс и в определении класса задаете его использование, говорят, что класс реализует интерфейс, или наследует его. Лично я считаю термин реализовать корректнее. Ин...
    Применение интерфейсов
    Применение интерфейсов Чтобы понять, где интерфейсы приносят пользу, рассмотрим традиционную проблему программирования в Windows, когда нужно обеспечить универсальное взаимодействие двух совершенн...
    Примечание
    Примечание Разработчики на C++ могут воспринимать интерфейс в основном как абстрактный класс, в котором объявлены только чисто виртуальные методы в дополнение к другим типам членов классов С#, так...
    Объявление интерфейсов
    Объявление интерфейсов Интерфейсы могут содержать методы, свойства, индексаторы и события, но ни одна из этих сущностей не реализуется в самом интерфейсе. Рассмотрим их применение на примере. Допу...
    Реализация интерфейсов
    Реализация интерфейсов Поскольку интерфейс определяет связь между фрагментами кода, любой класс, реализующий интерфейс, должен определять любой и каждый элемент этого интерфейса, иначе код не буде...
    Запрос о реализации интерфейса с помощью is
    Запрос о реализации интерфейса с помощью is В примере InterfaceApp вы видели код, использованный для приведения объекта (MyControl) к одному из реализованных в нем интерфейсов (IValidate) и затем...
    Запрос о реализации интерфейса с помощью as
    Запрос о реализации интерфейса с помощью as Приглядевшись к MSIL-коду, сгенерированному из предыдущего примера IsOperator2App (см. MSIL-код после этого абзаца), вы заметите проблему, связанную с о...
    Явная квалификация имени члена интерфейса
    Явная квалификация имени члена интерфейса Вы уже познакомились с классами, реализующими интерфейсы путем задания модификатора доступа public, за которым следует сигнатура метода интерфейса. Однако...
    Сокрытие имени с помощью интерфейсов
    Сокрытие имени с помощью интерфейсов 'Чтобы вызвать метод, реализованный в интерфейсе, необходимо привести экземпляр этого класса к типу интерфейса и вызвать нужный ме-цод — это самый распростране...
    Теперь этот пример выдаст следующее
    bound.Bind(); } I Теперь этот пример выдаст следующее: / Calling EditBox.Bind()... J Binding to data store... • /' Calling (IDataBound))EditBox.Bind()... ; Binding to data store... ' Заметьте: хот...
    ОШИБКА: эта строка не будет компилироваться
    Console.WriteLine(Calling EditBox. BindQ...); // ОШИБКА: эта строка не будет компилироваться, так как // метод Bind более не существует в пространстве имен // класса EditBox. edit.BindQ;...
    Это правильно, так как объект был сначала приведен
    Console.WriteLine(Calling (IDataBound)EditBox.BindQ...); // Это правильно, так как объект был сначала приведен // к IDataBound. bound.Bind(); } Этот код не будет компилироваться, так как имя члена...
    Избежание неоднозначности имен
    Избежание неоднозначности имен Одна из главных причин, по которой С# не поддерживает множестве-ное наследование, — проблема конфликта имен, результатом котором является неоднозначность имен. Хотя...
    Интерфейсы и наследование
    Интерфейсы и наследование С интерфейсами и наследованием связаны две распространенные проблемы. Первая, проиллюстрированная приведенным ниже кодом, связана с созданием производного класса, содержа...
    Комбинирование интерфейсов
    Комбинирование интерфейсов Еще одна мощная функция С# — возможность комбинирования двух или более интерфейсов, и в итоге класс должен реализовать только результат комбинирования. Пусть вы хотите с...
    Подведем итоги
    Подведем итоги Интерфейсы на С# обеспечивают разработку классов, у которых могут быть общие функции, но при этом они не являются частями одной и той же иерархии классов. Интерфейсы играют особую р...








Начало