Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на 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

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

Типы данных .NET Framework
Редактор нестандартных действий
Модификаторы доступа к членам
Управление лицензированием элементов управления
Создание поддержки печати
Объект Graphics
Свойства, доступные только для чтения или только для записи
Распространение приложений через Интернет
Реализация метода RemoveStale
Установка и извлечение динамических свойств вручную
Свойства по умолчанию и индексаторы
Обработка событий клавиатуры на уровне формы
Константы и перечисления
Реализация полиморфизма через интерфейсы
Специальные возможности и элементы управления Windows Forms
| .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 29
30 31


     



Rambler's Top100

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

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