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


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

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

Сборщик мусора
Обеспечение совместимости с замещенными или скрытыми членами
Применение методов формы
Создание экземпляров пользовательских типов
Реализация полиморфизма через интерфейсы
Применение переменных ссылочных типов
Компонент PrintDocument
Использование шаблонов кода
События жизненного цикла формы
Разделяемые сборки
Циклические ссылки
Оптимизация приложений
Определение глобализации и локализации
Наследование от абстрактного класса
Работа в редакторе кода
| .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 | Интерфейсы как средство достижения полиморфизма. Регион сайта: Москва и Санкт-Петербург