Содержание
- 2. ©Павловская Т.А. (СПбГУ ИТМО) Лекция 8. Наследование классов Организация иерархий классов. Раннее и позднее связывание. Виртуальные
- 3. ©Павловская Т.А. (СПбГУ ИТМО) Возможности наследования Наследование является мощнейшим инструментом ООП. Оно позволяет строить иерархии, в
- 4. ©Павловская Т.А. (СПбГУ ИТМО) Синтаксис [ атрибуты ] [ спецификаторы ] class имя_класса [ : предки
- 5. ©Павловская Т.А. (СПбГУ ИТМО) Сквозной пример класса class Monster { public Monster() // конструктор { this.name
- 6. ©Павловская Т.А. (СПбГУ ИТМО) Daemon, наследник класса Monster class Daemon : Monster { public Daemon() {
- 7. ©Павловская Т.А. (СПбГУ ИТМО) Конструкторы и наследование Конструкторы не наследуются, поэтому производный класс должен иметь собственные
- 8. ©Павловская Т.А. (СПбГУ ИТМО) Вызов конструктора базового класса public Daemon( string name, int brain ) :
- 9. ©Павловская Т.А. (СПбГУ ИТМО) Наследование полей и методов Поля, методы и свойства класса наследуются. При желании
- 10. ©Павловская Т.А. (СПбГУ ИТМО) Совместимость типов при наследовании Объекту базового класса можно присвоить объект производного класса:
- 11. Пример раннего связывания ©Павловская Т.А. (СПбГУ ИТМО) class Program { static void Main(string[] args) { Monster[]
- 12. ©Павловская Т.А. (СПбГУ ИТМО) Раннее связывание Ссылки разрешаются до выполнения программы Поэтому компилятор может руководствоваться только
- 13. ©Павловская Т.А. (СПбГУ ИТМО) Позднее связывание Происходит на этапе выполнения программы Признак – ключевое слово virtual
- 14. ©Павловская Т.А. (СПбГУ ИТМО) Пример позднего связывания class Program { static void Main(string[] args) { Monster[]
- 15. ©Павловская Т.А. (СПбГУ ИТМО) Полиморфизм Виртуальные методы базового класса определяют интерфейс всей иерархии. Он может расширяться
- 16. ©Павловская Т.А. (СПбГУ ИТМО) Применение виртуальных методов Виртуальные методы используются при работе с производными классами через
- 17. ©Павловская Т.А. (СПбГУ ИТМО) Абстрактные классы Абстрактный класс служит только для порождения потомков. Как правило, в
- 18. ©Павловская Т.А. (СПбГУ ИТМО) Полиморфные методы Абстрактные классы используются: при работе со структурами данных, предназначенными для
- 19. ©Павловская Т.А. (СПбГУ ИТМО) abstract class TableFun { public abstract double F(double x); public void Table(double
- 20. ©Павловская Т.А. (СПбГУ ИТМО) Бесплодные (финальные) классы Ключевое слово sealed позволяет описать класс, от которого, в
- 21. ©Павловская Т.А. (СПбГУ ИТМО) Класс object Корневой класс System.Object всей иерархии объектов .NET, называемый в C#
- 22. Открытые методы класса System.Object public virtual bool Equals(object obj); возвращает true, если параметр и вызывающий объект
- 23. ©Павловская Т.А. (СПбГУ ИТМО) public class Complex { private double _real; private double _imaginary; public Complex(double
- 24. ©Павловская Т.А. (СПбГУ ИТМО) Пример переопределения метода Equals // сравнение значений, а не ссылок public override
- 25. ©Павловская Т.А. (СПбГУ ИТМО) Рекомендации по программированию Главное преимущество наследования состоит в том, что на уровне
- 26. Виды взаимоотношений между классами Наследование Специализация (Класс-наследник является специализированной формой родительского класса — в наследнике просто
- 27. ©Павловская Т.А. (СПбГУ ИТМО) Наследование и вложение Наследование класса Y от класса X чаще всего означает,
- 29. Скачать презентацию