* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Интерфейсы как средство достижения полиморфизма
8 февраля 2009

Любой объект, в котором реализован некоторый интерфейс, способен к взаимо-
действию с любым другим объектом, требующим этот интерфейс, например:
Visual Basic .NET
Public Sub GoSomewhere(ByVal V As IDrivable)
Реализация опущена
End Sub
Visual C#
Объявленному здесь методу необходимо, чтобы в его аргументе был реализован
интерфейс IDrivable. Следовательно, этому методу можно передать любой объект,
где реализован этот интерфейс, попутно этот объект неявно преобразуется в тип
соответствующего интерфейса. Объектам, взаимодействующим через реализован-
ный в них интерфейс, доступны только члены этого интерфейса.
Кроме того, разрешается явно преобразовывать объекты, в которых реализован
некоторый интерфейс, к типу этого интерфейса. Следующий пример демонстриру-
ет преобразование объекта Truck к типу интерфейса IDrivable (заметьте: чтобы это
сработало, в объекте Truck необходимо реализовать интерфейс IDrivable);
Visual Basic .NET
Dim myTruck As New Truck{)
Dim myVehicle As IDrivable
1 Преобразование объекта myTruck в тип интерфейса IDrivable
myVehicle = CType(IDrivable, myTruck)
Visual C#
Truck rnyTruck ~ new Truck();
IDrivable myVehicle;
// Преобразование объекта myTruck в тип интерфейса IDrivable
myVehicle = (IDriva3le}myTruck;
Реализация интерфейсов
Чтобы в программе на Visual Basic реализовать интерфейс в классе или структуре,
следует воспользоваться ключевым словом Implements, а в Visual C# для этой цели
применяется двоеточие, вот пример:
Visual Basic .NET
Public Class Truck
Implements IDrivable
Реализация опущена
End Class
Visual C#
public class Truck : IDrivable
{
// Реализация опущена
}
В классах реализуется несколько интерфейсов. Чтобы объявить такой класс, ука-
жите все необходимые интерфейсы через запятую, как показано ниже.
Visual Basic .NET
Public Class Truck
Implements IDrivable, IFuelBurning, ICargoCarrying
Реализация опущена
End Class
Visual C#
public class Truck : IDrivable, IFuelBurning, ICargoCarrying
// Реализация опущена
}
Если в классе или структуре реализован некоторый интерфейс, необходимо
предоставить реализацию для всех его членов, то же правило действует, если реали-
зовано несколько интерфейсов.

Теги: .NET

Статьи по теме:

Проверка разрешений, запрашиваемых установленной сборкой
Реализация полиморфизма через наследование
Свойства BackColor, ForeColor и Text
Работа с фокусом ввода
Развертывание проекта
Установка сборок в GAC
Сборщик мусора
Применение типов .NET Framework в приложениях
Объект Graphics
Обработка ошибок при обновлении базы данных
Cosmos – C# Open Source Managed Operating System
Параметры компоновки установочной программы
Редактор реестра
Редактор условий установки
Towards Cleaner Code II, a C# GUI Invoke/Async Helper
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Интерфейсы как средство достижения полиморфизма. Регион сайта: Москва и Санкт-Петербург