Содержание
- 2. Определение Полиморфи́зм — возможность объектов с одинаковой спецификацией иметь различную реализацию.
- 3. Виды полиморфизма Ad hoc полиморфизм (специализированный полиморфизм) Перегрузка функций (методов) Перегрузка операторов Полиморфизм подтипов Полиморфизм включения
- 4. Ad hoc полиморфизм Ad hoc полиморфизм – это вид полиморфизма , при котором полиморфные методы (функции)
- 5. Перегрузка функций Создадим класс, а в нем – простой метод для сложения 2-х целочисленных чисел. class
- 6. Перегрузка функций Теперь создадим в этом классе еще один метод для сложения, но уже вещественных чисел
- 7. Перегрузка функций И никакой ошибки
- 8. Как делать нельзя А здесь есть ошибка. В чем она заключается?
- 9. Как оно работает У нас есть набор функций имеющих одинаковое имя, но разный набор принимаемых параметров.
- 10. Как оно работает Однозначно означает, что в этом фрагменте кода при каждом запуске будет вызываться одна
- 11. Как делать нельзя Возвращаемся к ошибке. Что же здесь не так?
- 12. В чем причина При вызове функции, ее можно однозначно идентифицировать ее только по передаваемым в нее
- 13. Как делать можно Функция может различаться по следующим признакам: Разный тип передаваемых параметров Разное количество передаваемых
- 14. Пример Возможные варианты:
- 15. Перегрузка конструкторов Конструкторы класса – это методы, следовательно принципы перегрузки функций применимы и к ним.
- 16. Перегрузка операций В C#, подобно любому языку программирования, имеется готовый набор операций, используемых для выполнения базовых
- 17. Виды операций Математические операции +, -, *, / Логические операции над числами &, | Операции сдвига
- 18. Перегрузка операций Перегрузка операций позволяет задать смысл стандартных операций C#, таких как сложение, вычитание, инкремент, декремент
- 19. Как перегружать Перегрузка операций строится на основе открытых статических методов, объявляемых с использованием ключевого слова operator.
- 20. Пример В классе определим целочисленное поле и переопределим оператор сложения:
- 21. Что и как можно перегружать В качестве возвращаемого значения может выступать любой тип данных. Все будет
- 22. Что и как можно перегружать Типы параметров, передаваемые при перегрузке операций тоже могут быть любыми и
- 23. Что и как можно перегружать Количество передаваемых в функцию параметров зависит от перегружаемой операции. Операции бывают:
- 24. Примеры
- 25. Правила перегрузки операций
- 26. Правила перегрузки операций
- 27. Примечание При перегрузке операторов сравнения они должны перегружаться парами; то есть если оператор == перегружается, оператор
- 28. Модификатор static Модификатор static используется для объявления статического члена, принадлежащего собственно типу, а не конкретному объекту.
- 29. С чем его можно «есть» Модификатор static можно использовать с классами, полями, методами, свойствами, операторами, событиями
- 30. Статический класс Нельзя создавать экземпляры статического класса (нельзя использовать ключевое слово new для создания переменной типа
- 31. Пример Создаем статичный класс со статичными членами класса Как к нему обращаться
- 32. Ранее связывание Связывание – это связь между именем вызываемого метода и непосредственно местом, где этот метод
- 33. Ранее связывание Преимущество раннего связывания в том, что при невозможности установить связь между вызываемым именем и
- 34. Позднее связывание Выбор переопределённого метода откладывается на момент обращения к методу во время исполнения программы. На
- 35. Переопределение виртуального метода Выбор переопределённого метода откладывается на момент выполнения
- 36. Полиморфизм подтипов Этот вид полиморфизма заключается в том, что вызывающий код использует объект, опираясь только на
- 37. Пример Опять вернемся к предыдущей лекции. Есть интерфейс и есть его наследник(и)
- 38. Пример И есть метод, который принимает переменную типа интерфейс и вызывает его метод На самом деле
- 39. Пример В зависимости от того, как каждый из наследников переопределил что делать в method1, будут выполняться
- 40. И еще пример
- 41. Параметрический полиморфизм Параметрический полиморфизм позволяет определить функцию или тип данных обобщённо, так что значения обрабатываются идентично
- 42. Параметрический полиморфизм Параметрическая полиморфная функция использует аргументы на основе поведения, а не значения, апеллируя лишь к
- 43. Пример Параметрический класс, который не зависит от типа данных
- 44. Как его задавать После имени класса в угловых скобках ‘ ’ указывается имя параметра, вместо которого
- 45. Возможности Типов-параметров в классе может быть несколько
- 47. Скачать презентацию