Книга: C# для профессионалов. Том II

Наследование

Наследование

Наследование работает в основном таким же образом в C#, как и в C++, с тем исключением, что множественная реализация наследования не поддерживается. Компания Microsoft считает, что множественное наследование ведет к коду, который хуже структурирован и который труднее сопровождать, и поэтому решила исключить это свойство из C#.

Class MyClass : MyBaseClass {
 // и т.д.

В C++ указатель на класс может дополнительно указывать на экземпляр производного класса. (Виртуальные функции в конце концов зависят от этого факта.) В C# классы доступны через ссылки, но правило остается тем же. Ссылка на класс может ссылаться на экземпляры этого класса или на экземпляры любого производного класса.

MyBaseClass Mine;
Mine = new MyClass(); // все нормально, если MyClass будет производным
                      // от MyBaseClass

Если желательно, чтобы ссылка ссылалась на произвольный объект (эквивалент void* в C++), можно определить ее как object в C#, так как C# отображает object в класс System.Object, из которого выводятся все другие классы.

object Mine2 = new MyClass();

Оглавление книги


Генерация: 0.196. Запросов К БД/Cache: 0 / 2
поделиться
Вверх Вниз