Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Интерфейсы с множеством базовых интерфейсов
Интерфейсы с множеством базовых интерфейсов
При построении иерархии интерфейсов вполне допустимо создавать интерфейсы, которые оказываются производными от нескольких базовых интерфейсов. Однако напомним, что нельзя строить классы, которые будут производными от нескольких базовых классов. Для примера предположим, что вы строите набор интерфейсов, моделирующих поведение автомобиля.
public interface ICar { void Drive(); }
public interface IUnderwaterCar { void Dive(); }
// Здесь интерфейс имеет ДВА базовых интерфейса.
public interface IJamesBondCar: ICar, IUnderwaterCar { void TurboBoost(); }
На рис. 7.6 показана соответствующая цепочка интерфейсов.
Рис. 7.6. Общая система типов (CTS) допускает множественное наследование интерфейсных типов
При построении класса, реализующего IJamesBondCar (машина Джеймса Бонда), вы должны реализовать TurboBoost(), Dive() и Drive().
public class JamesBondCar: IJamesBondCar {
public void Drive() { Console.WriteLine("Ускорение…"); }
public void Dive() { Console.WriteLine("Погружение…"); }
public void TurboBoost() { Console.WriteLine{"Взлет!"); }
}
Этот специализированный автомобиль можно использовать так, как и ожидается.
static void Main(string[] args) {
…
JamesBоndCar j = new JamesBondCar();
j.Drive();
j.TurboBoost();
j.Dive();
}
- Построение иерархии интерфейсов
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- Множественные интерфейсы и имена методов
- 6. Модификация базовых отношений
- 2.2 Интерфейсы IDE, EIDE и АТА
- 7.5 Программные интерфейсы приложений для адаптеров шины
- Абстрактные базы как двоичные интерфейсы
- Интерфейсы накопителей на жестких магнитных дисках
- Глава 10 Интерфейсы компьютерных сетей
- 12.5. Другие библиотеки для создания графических интерфейсов
- Интерфейсы
- 8.4.4. Цифровые интерфейсы P&D, DVI и DFP