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


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

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

Создание перегруженных методов
Применение объектов DataSet и обновление данных
Делегаты
Объявление методов
Работа с элементами управления
Установка приложения
Модификаторы доступа для вложенных типов
Работа с мастером Data Form
Сборки
Принципы создания элементов управления
Реализация полиморфизма через наследование
Языки программирования .NET
Применение событий формы
ToDoList 5.6.6
Извлечение данных XML из баз данных SQL Server 2000
| .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


     



Rambler's Top100

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

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