Интерфейсы с множеством базовых интерфейсов
Интерфейсы с множеством базовых интерфейсов
При построении иерархии интерфейсов вполне допустимо создавать интерфейсы, которые оказываются производными от нескольких базовых интерфейсов. Однако напомним, что нельзя строить классы, которые будут производными от нескольких базовых классов. Для примера предположим, что вы строите набор интерфейсов, моделирующих поведение автомобиля.
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();
}
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Пример: использование базовых указателей
Пример: использование базовых указателей Рассмотренные выше примеры относились к сортировке файлов в различных ситуациях. Вместе с тем, должно быть очевидным, что наша цель состояла не в обсуждении методик сортировки, а в демонстрации применения различных методов
Выбор вершин со множеством рёбер
Выбор вершин со множеством рёбер В идеале меш должен содержать грани, которые состоят из только четырех вершин (эти грани обычно именуются quads — четырёхугольники), и у них должны быть относительно одинаковые размеры. Такая конфигурация оптимальна при деформации меша,
R.12.6.2 Инициализация членов и базовых классов
R.12.6.2 Инициализация членов и базовых классов В определении конструктора можно задать инициализацию прямых базовых классов и членов, не наследуемых из базовых классов. Это особенно полезно для тех объектов, констант и ссылок, для которых различаются семантики
11 Интерфейсы: модели проектирования пользовательских интерфейсов в среде Unix
11 Интерфейсы: модели проектирования пользовательских интерфейсов в среде Unix Начало всех наших знаний в наших ощущениях. —Леонардо да Винчи Интерфейсом программы является совокупность всех способов, посредством которых программа обменивается данными с пользователями
11 Интерфейсы: модели проектирования пользовательских интерфейсов в среде Unix
11 Интерфейсы: модели проектирования пользовательских интерфейсов в среде Unix Начало всех наших знаний в наших ощущениях. —Леонардо да Винчи Интерфейсом программы является совокупность всех способов, посредством которых программа обменивается данными с пользователями
Роль библиотек базовых классов
Роль библиотек базовых классов В дополнение к спецификациям CLR и CTS/CLS, платформа .NET предлагает библиотеку базовых классов, доступную всем языкам программирования .NET. Эта библиотека базовых классов не только инкапсулирует различные примитивы, такие как потоки, файловый
Создание обобщенных базовых классов
Создание обобщенных базовых классов Перед рассмотрением обобщенных интерфейсов следует указать на то, что обобщенные классы могут быть базовыми для других классов и могут таким образом определять любое число виртуальных и абстрактных методов. Однако производные типы
Объекты DataSet с множеством таблиц и объекты DataRelation
Объекты DataSet с множеством таблиц и объекты DataRelation До этого момента во всех примерах данной главы объекты DataSet содержали по одному объекту DataTable. Однако вся мощь несвязного уровня ADO.NET проявляется тогда, когда DataSet содержит множество объектов DataTable. В этом случае вы можете
Лекция № 8. Создание базовых отношений
Лекция № 8. Создание базовых отношений Предметом этой лекции будет довольно подробное рассмотрение оператора создания базового отношения. Мы подвергнуть разбору сам оператор в записи на псевдокоде, проанализируем все его составляющие и их работу, разберем способы
6. Модификация базовых отношений
6. Модификация базовых отношений Для успешной и продуктивной работы с различными базовыми отношениями очень часто разработчикам необходимо каким-либо образом модифицировать это базовые отношения.Какие основные необходимые варианты модификации встречаются чаще всего
Операции над множеством для сортированных структур (Set operations on sorted structures)
Операции над множеством для сортированных структур (Set operations on sorted structures) Этот раздел определяет все основные операции над множеством для сортированных структур. Они даже работают с множествами с дубликатами, содержащими множественные копии равных элементов. Семантика
Пример. Простановка базовых размеров
Пример. Простановка базовых размеров Проставьте линейный размер, а затем от него – базовые (рис. 10.15). Рис. 10.15. Простановка базовых размеровЗапустите команду DIMLINEAR, вызвав ее из меню Dimension ? Linear или щелчком на пиктограмме Linear на панели инструментов Dimension. Ответьте на
Еще раз о базовых классах
Еще раз о базовых классах С введением закрепленных типов нуждается в расширении понятие базового класса типа.Сначала классы и типы были для нас едины, и это их свойство - отправной пункт ОО-метода, - по существу, сохраняется, хотя нам пришлось немного расширить систему
Константы базовых типов
Константы базовых типов Глобальные объекты - некий вызов ОО-методу, провозглашающему идеи децентрализации, модульности и автономности. Борьба шла за независимость модулей, за избавление от произвола центральной власти. Теперь этой власти нет. Как же построить систему, в