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


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

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

Конфигурирование защиты по правам доступа к коду
Циклические ссылки
Перечисления CTS
Создание элементов управления
Рисование простых фигур
Локализация формы
Конструкторы и деструкторы
Создание проекта установочной программы
Вызов методов
Структура .NET-приложений
Оптимизация приложений
Формы, элементы управления и меню
Доступ к «плоским» файлам
Автоматизация разработки
Объекты Color, Brush и Pen
| .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 | Интерфейсы как средство достижения полиморфизма. Регион сайта: Москва и Санкт-Петербург