Книга: 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();
- У14.4 Наследование без классов
- Лекция 9. Наследование и замыкание
- Лекция 14. Введение в наследование
- Лекция 15. Множественное наследование
- Дублируемое наследование
- ГЛАВА 11 Наследование
- Единичное наследование (single inheritance)
- Множественное наследование (Multiple inheritance)
- Дублируемое наследование (Repeated inheritance)
- У3.6 Управление конфигурацией и наследование
- Наследование функциональных возможностей общего характера
- 1.1.2. Наследование