Содержание
- 2. ©Павловская Т.А. (СПбГУ ИТМО) Возможности наследования Наследование является мощнейшим инструментом ООП. Оно позволяет строить иерархии, в
- 3. ©Павловская Т.А. (СПбГУ ИТМО) Синтаксис [ атрибуты ] [ спецификаторы ] class имя_класса [ : предки
- 4. ©Павловская Т.А. (СПбГУ ИТМО) Сквозной пример класса class Monster { public Monster() // конструктор { this.name
- 5. ©Павловская Т.А. (СПбГУ ИТМО) Daemon, наследник класса Monster class Daemon : Monster { public Daemon() {
- 6. ©Павловская Т.А. (СПбГУ ИТМО) Вызов конструктора базового класса public Daemon( string name, int brain ) :
- 7. ©Павловская Т.А. (СПбГУ ИТМО) Конструкторы и наследование Конструкторы не наследуются, поэтому производный класс должен иметь собственные
- 8. ©Павловская Т.А. (СПбГУ ИТМО) Наследование полей и методов Поля, методы и свойства класса наследуются. При желании
- 9. ©Павловская Т.А. (СПбГУ ИТМО) Совместимость типов при наследовании Объекту базового класса можно присвоить объект производного класса:
- 10. ©Павловская Т.А. (СПбГУ ИТМО) Пример раннего связывания class T { T(int i) { this.i = i;
- 11. ©Павловская Т.А. (СПбГУ ИТМО) Создание объекта x класса X … x.draw x.number x.move Вызывающий метод методы
- 12. ©Павловская Т.А. (СПбГУ ИТМО) Раннее связывание Ссылки разрешаются до выполнения программы Поэтому компилятор может руководствоваться только
- 13. ©Павловская Т.А. (СПбГУ ИТМО) Позднее связывание Происходит на этапе выполнения программы Признак – ключевое слово virtual
- 14. ©Павловская Т.А. (СПбГУ ИТМО) Пример позднего связывания class T { T(int i) virtual draw { "ТT"
- 15. ©Павловская Т.А. (СПбГУ ИТМО) Создание объекта x класса X … x.draw x.number x.move t.move Вызывающий метод
- 16. ©Павловская Т.А. (СПбГУ ИТМО) Полиморфизм Виртуальные методы базового класса определяют интерфейс всей иерархии. Интерфейс может расширяться
- 17. ©Павловская Т.А. (СПбГУ ИТМО) Применение виртуальных методов Виртуальные методы используются: при работе с производными классами через
- 18. ©Павловская Т.А. (СПбГУ ИТМО) Пример полиморфного метода Т - предок Х - потомок в обоих классах
- 19. ©Павловская Т.А. (СПбГУ ИТМО) При описании классов рекомендуется определять в качестве виртуальных те методы, которые в
- 20. ©Павловская Т.А. (СПбГУ ИТМО) Абстрактные классы Абстрактные классы предназначены для представления общих понятий, которые предполагается конкретизировать
- 21. ©Павловская Т.А. (СПбГУ ИТМО) Применение абстрактных классов Абстрактный класс служит только для порождения потомков. Абстрактные классы
- 22. ©Павловская Т.А. (СПбГУ ИТМО) Бесплодные (финальные) классы Ключевое слово sealed позволяет описать класс, от которого, в
- 23. ©Павловская Т.А. (СПбГУ ИТМО) Класс object Корневой класс System.Object всей иерархии объектов .NET, называемый в C#
- 24. ©Павловская Т.А. (СПбГУ ИТМО) Открытые методы класса System.Object public virtual bool Equals(object obj); возвращает true, если
- 25. ©Павловская Т.А. (СПбГУ ИТМО) Пример переопределения метода Equals // сравнение значений, а не ссылок public override
- 26. ©Павловская Т.А. (СПбГУ ИТМО) Рекомендации по программированию Главное преимущество наследования состоит в том, что на уровне
- 27. ©Павловская Т.А. (СПбГУ ИТМО) Виды взаимоотношений между классами Наследование Специализация (Наследник является специализированной формой предка) Спецификация
- 28. ©Павловская Т.А. (СПбГУ ИТМО) Наследование и вложение Наследование класса Y от класса X чаще всего означает,
- 30. Скачать презентацию