🗊Презентация Полиморфизм (C#, лекция 3)

Нажмите для полного просмотра!
Полиморфизм (C#, лекция 3), слайд №1Полиморфизм (C#, лекция 3), слайд №2Полиморфизм (C#, лекция 3), слайд №3Полиморфизм (C#, лекция 3), слайд №4Полиморфизм (C#, лекция 3), слайд №5Полиморфизм (C#, лекция 3), слайд №6Полиморфизм (C#, лекция 3), слайд №7Полиморфизм (C#, лекция 3), слайд №8Полиморфизм (C#, лекция 3), слайд №9Полиморфизм (C#, лекция 3), слайд №10Полиморфизм (C#, лекция 3), слайд №11Полиморфизм (C#, лекция 3), слайд №12Полиморфизм (C#, лекция 3), слайд №13Полиморфизм (C#, лекция 3), слайд №14Полиморфизм (C#, лекция 3), слайд №15Полиморфизм (C#, лекция 3), слайд №16Полиморфизм (C#, лекция 3), слайд №17Полиморфизм (C#, лекция 3), слайд №18Полиморфизм (C#, лекция 3), слайд №19Полиморфизм (C#, лекция 3), слайд №20Полиморфизм (C#, лекция 3), слайд №21Полиморфизм (C#, лекция 3), слайд №22Полиморфизм (C#, лекция 3), слайд №23Полиморфизм (C#, лекция 3), слайд №24Полиморфизм (C#, лекция 3), слайд №25Полиморфизм (C#, лекция 3), слайд №26Полиморфизм (C#, лекция 3), слайд №27Полиморфизм (C#, лекция 3), слайд №28Полиморфизм (C#, лекция 3), слайд №29Полиморфизм (C#, лекция 3), слайд №30Полиморфизм (C#, лекция 3), слайд №31Полиморфизм (C#, лекция 3), слайд №32Полиморфизм (C#, лекция 3), слайд №33Полиморфизм (C#, лекция 3), слайд №34Полиморфизм (C#, лекция 3), слайд №35Полиморфизм (C#, лекция 3), слайд №36Полиморфизм (C#, лекция 3), слайд №37Полиморфизм (C#, лекция 3), слайд №38Полиморфизм (C#, лекция 3), слайд №39Полиморфизм (C#, лекция 3), слайд №40Полиморфизм (C#, лекция 3), слайд №41Полиморфизм (C#, лекция 3), слайд №42Полиморфизм (C#, лекция 3), слайд №43Полиморфизм (C#, лекция 3), слайд №44Полиморфизм (C#, лекция 3), слайд №45Полиморфизм (C#, лекция 3), слайд №46

Содержание

Вы можете ознакомиться и скачать презентацию на тему Полиморфизм (C#, лекция 3). Доклад-сообщение содержит 46 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Лекция 3
Описание слайда:
Лекция 3

Слайд 2





Определение
Полиморфи́зм — возможность объектов с одинаковой спецификацией иметь различную реализацию.
Описание слайда:
Определение Полиморфи́зм — возможность объектов с одинаковой спецификацией иметь различную реализацию.

Слайд 3





Виды полиморфизма
Ad hoc полиморфизм (специализированный полиморфизм)
Перегрузка функций (методов)
Перегрузка операторов
Полиморфизм подтипов
Полиморфизм включения
Параметрический полиморфизм
Параметрические методы
Параметрические типы
Описание слайда:
Виды полиморфизма Ad hoc полиморфизм (специализированный полиморфизм) Перегрузка функций (методов) Перегрузка операторов Полиморфизм подтипов Полиморфизм включения Параметрический полиморфизм Параметрические методы Параметрические типы

Слайд 4





Ad hoc полиморфизм
Ad hoc полиморфизм – это вид полиморфизма , при котором полиморфные методы (функции) могут применяться с различными типами данных.
Описание слайда:
Ad hoc полиморфизм Ad hoc полиморфизм – это вид полиморфизма , при котором полиморфные методы (функции) могут применяться с различными типами данных.

Слайд 5





Перегрузка функций
Создадим класс, а в нем – простой метод для сложения 2-х целочисленных чисел.
 class overloadMethods
    {
        int methodSum(int a, int b)
        {
            return a + b;
        }
    }
Описание слайда:
Перегрузка функций Создадим класс, а в нем – простой метод для сложения 2-х целочисленных чисел. class overloadMethods { int methodSum(int a, int b) { return a + b; } }

Слайд 6





Перегрузка функций
Теперь создадим в этом классе еще один метод для сложения, но уже вещественных чисел
double methodSum(double a, double b)
        {
            return a + b;
        }
Описание слайда:
Перегрузка функций Теперь создадим в этом классе еще один метод для сложения, но уже вещественных чисел double methodSum(double a, double b) { return a + b; }

Слайд 7





Перегрузка функций
И никакой ошибки
Описание слайда:
Перегрузка функций И никакой ошибки

Слайд 8





Как делать нельзя
А здесь есть ошибка.
В чем она заключается?
Описание слайда:
Как делать нельзя А здесь есть ошибка. В чем она заключается?

Слайд 9





Как оно работает
У нас есть набор функций имеющих одинаковое имя, но разный набор принимаемых параметров.
При вызове функции мы должны однозначно определить, какую функцию вызывать.
Описание слайда:
Как оно работает У нас есть набор функций имеющих одинаковое имя, но разный набор принимаемых параметров. При вызове функции мы должны однозначно определить, какую функцию вызывать.

Слайд 10





Как оно работает
Однозначно означает, что в этом фрагменте кода при каждом запуске будет вызываться одна из функций и только она. Не зависимо от значений, передаваемых в функции при каждом вызове.
Описание слайда:
Как оно работает Однозначно означает, что в этом фрагменте кода при каждом запуске будет вызываться одна из функций и только она. Не зависимо от значений, передаваемых в функции при каждом вызове.

Слайд 11





Как делать нельзя
Возвращаемся к ошибке. Что же здесь не так?
Описание слайда:
Как делать нельзя Возвращаемся к ошибке. Что же здесь не так?

Слайд 12





В чем причина
При вызове функции, ее можно однозначно идентифицировать ее только по передаваемым в нее параметрам (при условии наличия функций с одинаковыми именами), но невозможно различать функции по типу возвращаемого значения (потому что компилятору этого мало при определении однозначности)
Описание слайда:
В чем причина При вызове функции, ее можно однозначно идентифицировать ее только по передаваемым в нее параметрам (при условии наличия функций с одинаковыми именами), но невозможно различать функции по типу возвращаемого значения (потому что компилятору этого мало при определении однозначности)

Слайд 13





Как делать можно
Функция может различаться по следующим признакам:
Разный тип передаваемых параметров
Разное количество передаваемых параметров
Комбинация первых двух случаев
Описание слайда:
Как делать можно Функция может различаться по следующим признакам: Разный тип передаваемых параметров Разное количество передаваемых параметров Комбинация первых двух случаев

Слайд 14





Пример
Возможные варианты:
Описание слайда:
Пример Возможные варианты:

Слайд 15





Перегрузка конструкторов
Конструкторы класса – это методы, следовательно принципы перегрузки функций применимы и к ним.
Описание слайда:
Перегрузка конструкторов Конструкторы класса – это методы, следовательно принципы перегрузки функций применимы и к ним.

Слайд 16





Перегрузка операций
В C#, подобно любому языку программирования, имеется готовый набор операций, используемых для выполнения базовых операций над встроенными типами.
Описание слайда:
Перегрузка операций В C#, подобно любому языку программирования, имеется готовый набор операций, используемых для выполнения базовых операций над встроенными типами.

Слайд 17





Виды операций
Математические операции
+, -, *, / 
Логические операции над числами
&, |
Операции сдвига
<<, >>
Операции сравнения
==, !=, <, >, <=, >=
Операции присваивания
=, +=, -=
Описание слайда:
Виды операций Математические операции +, -, *, / Логические операции над числами &, | Операции сдвига <<, >> Операции сравнения ==, !=, <, >, <=, >= Операции присваивания =, +=, -=

Слайд 18





Перегрузка операций
Перегрузка операций позволяет задать смысл стандартных операций C#, таких как сложение, вычитание, инкремент, декремент и т.д., для классов, определяемых пользователем.
Описание слайда:
Перегрузка операций Перегрузка операций позволяет задать смысл стандартных операций C#, таких как сложение, вычитание, инкремент, декремент и т.д., для классов, определяемых пользователем.

Слайд 19





Как перегружать
Перегрузка операций строится на основе открытых статических методов, объявляемых с использованием ключевого слова operator.
Синтаксис перегрузки :
public static <тип возвращаемого значения> operator <операция>(<параметры>)
Описание слайда:
Как перегружать Перегрузка операций строится на основе открытых статических методов, объявляемых с использованием ключевого слова operator. Синтаксис перегрузки : public static <тип возвращаемого значения> operator <операция>(<параметры>)

Слайд 20





Пример
В классе определим целочисленное поле и переопределим оператор сложения:
Описание слайда:
Пример В классе определим целочисленное поле и переопределим оператор сложения:

Слайд 21





Что и как можно перегружать
В качестве возвращаемого значения может выступать любой тип данных. Все будет зависеть от логики, которую закладывают в перегружаемую операцию.
Описание слайда:
Что и как можно перегружать В качестве возвращаемого значения может выступать любой тип данных. Все будет зависеть от логики, которую закладывают в перегружаемую операцию.

Слайд 22





Что и как можно перегружать
Типы параметров, передаваемые при перегрузке операций тоже могут быть любыми и так же зависят исключительно от логики перегрузки.
Описание слайда:
Что и как можно перегружать Типы параметров, передаваемые при перегрузке операций тоже могут быть любыми и так же зависят исключительно от логики перегрузки.

Слайд 23





Что и как можно перегружать
Количество передаваемых в функцию параметров зависит от перегружаемой операции.
Операции бывают:
Унарные
Бинарные
тернарные
Описание слайда:
Что и как можно перегружать Количество передаваемых в функцию параметров зависит от перегружаемой операции. Операции бывают: Унарные Бинарные тернарные

Слайд 24





Примеры
Описание слайда:
Примеры

Слайд 25





Правила перегрузки операций
Описание слайда:
Правила перегрузки операций

Слайд 26





Правила перегрузки операций
Описание слайда:
Правила перегрузки операций

Слайд 27





Примечание
При перегрузке операторов сравнения они должны перегружаться парами; 
то есть если оператор == перегружается, оператор != тоже должен перегружаться. 
Обратное также верно, и сказанное относится также к парам операторов < и >, <= и >=.
Описание слайда:
Примечание При перегрузке операторов сравнения они должны перегружаться парами; то есть если оператор == перегружается, оператор != тоже должен перегружаться. Обратное также верно, и сказанное относится также к парам операторов < и >, <= и >=.

Слайд 28





Модификатор static
Модификатор static используется для объявления статического члена, принадлежащего собственно типу, а не конкретному объекту.
Описание слайда:
Модификатор static Модификатор static используется для объявления статического члена, принадлежащего собственно типу, а не конкретному объекту.

Слайд 29





С чем его можно «есть»
Модификатор static можно использовать с классами, полями, методами, свойствами, операторами, событиями и конструкторами.
Нельзя — с индексаторами, деструкторами или типами, отличными от классов.
Описание слайда:
С чем его можно «есть» Модификатор static можно использовать с классами, полями, методами, свойствами, операторами, событиями и конструкторами. Нельзя — с индексаторами, деструкторами или типами, отличными от классов.

Слайд 30





Статический класс
Нельзя создавать экземпляры статического класса (нельзя использовать ключевое слово new для создания переменной типа класса)
Поскольку нет переменной экземпляра, доступ к членам статического класса осуществляется с использованием самого имени класса.
Описание слайда:
Статический класс Нельзя создавать экземпляры статического класса (нельзя использовать ключевое слово new для создания переменной типа класса) Поскольку нет переменной экземпляра, доступ к членам статического класса осуществляется с использованием самого имени класса.

Слайд 31





Пример
Создаем статичный класс со статичными членами класса
Описание слайда:
Пример Создаем статичный класс со статичными членами класса

Слайд 32





Ранее связывание
Связывание – это связь между именем вызываемого метода и непосредственно местом, где этот метод реализован.
Перегрузка методов и конструкторов относится к раннему связыванию. Т.е. когда компилятор на этапе компиляции, исходя из имеющихся типов данных, передаваемых в вызываемый метод, определяет что вызывать.
Описание слайда:
Ранее связывание Связывание – это связь между именем вызываемого метода и непосредственно местом, где этот метод реализован. Перегрузка методов и конструкторов относится к раннему связыванию. Т.е. когда компилятор на этапе компиляции, исходя из имеющихся типов данных, передаваемых в вызываемый метод, определяет что вызывать.

Слайд 33





Ранее связывание
Преимущество раннего связывания в том, что при невозможности установить связь между вызываемым именем и существующими методами, будет выдана ошибка на этапе компиляции, и сборка проекта прекращается.
Описание слайда:
Ранее связывание Преимущество раннего связывания в том, что при невозможности установить связь между вызываемым именем и существующими методами, будет выдана ошибка на этапе компиляции, и сборка проекта прекращается.

Слайд 34





Позднее связывание
Выбор переопределённого метода откладывается на момент обращения к методу во время исполнения программы. На момент компиляции компилятор точно не знает, какой из группы переопределённых методов будет выполнен.
Описание слайда:
Позднее связывание Выбор переопределённого метода откладывается на момент обращения к методу во время исполнения программы. На момент компиляции компилятор точно не знает, какой из группы переопределённых методов будет выполнен.

Слайд 35





Переопределение виртуального метода
Выбор переопределённого метода откладывается на момент выполнения
Описание слайда:
Переопределение виртуального метода Выбор переопределённого метода откладывается на момент выполнения

Слайд 36





Полиморфизм подтипов
Этот вид полиморфизма заключается в том, что вызывающий код использует объект, опираясь только на его представление (интерфейс), не зная при этом фактического типа.
Описание слайда:
Полиморфизм подтипов Этот вид полиморфизма заключается в том, что вызывающий код использует объект, опираясь только на его представление (интерфейс), не зная при этом фактического типа.

Слайд 37





Пример
Опять вернемся к предыдущей лекции. Есть интерфейс и есть его наследник(и)
Описание слайда:
Пример Опять вернемся к предыдущей лекции. Есть интерфейс и есть его наследник(и)

Слайд 38





Пример
И есть метод, который принимает переменную типа интерфейс и вызывает его метод
Описание слайда:
Пример И есть метод, который принимает переменную типа интерфейс и вызывает его метод

Слайд 39





Пример
В зависимости от того, как каждый из наследников переопределил что делать в method1, будут выполняться разные действия при вызове одного и того же метода
Описание слайда:
Пример В зависимости от того, как каждый из наследников переопределил что делать в method1, будут выполняться разные действия при вызове одного и того же метода

Слайд 40





И еще пример
Описание слайда:
И еще пример

Слайд 41





Параметрический полиморфизм
Параметрический полиморфизм позволяет определить функцию или тип данных обобщённо, так что значения обрабатываются идентично вне зависимости от их типа.
Описание слайда:
Параметрический полиморфизм Параметрический полиморфизм позволяет определить функцию или тип данных обобщённо, так что значения обрабатываются идентично вне зависимости от их типа.

Слайд 42





Параметрический полиморфизм
Параметрическая полиморфная функция использует аргументы на основе поведения, а не значения, апеллируя лишь к необходимым ей свойствам аргументов, что делает её применимой в любом контексте, где тип объекта удовлетворяет заданным требованиям поведения.
Описание слайда:
Параметрический полиморфизм Параметрическая полиморфная функция использует аргументы на основе поведения, а не значения, апеллируя лишь к необходимым ей свойствам аргументов, что делает её применимой в любом контексте, где тип объекта удовлетворяет заданным требованиям поведения.

Слайд 43





Пример
Параметрический класс, который не зависит от типа данных
Описание слайда:
Пример Параметрический класс, который не зависит от типа данных

Слайд 44





Как его задавать
После имени класса в угловых скобках ‘<‘, ‘>’ указывается имя параметра, вместо которого будет подставляться конкретный тип данных.
Описание слайда:
Как его задавать После имени класса в угловых скобках ‘<‘, ‘>’ указывается имя параметра, вместо которого будет подставляться конкретный тип данных.

Слайд 45





Возможности
Типов-параметров в классе может быть несколько
Описание слайда:
Возможности Типов-параметров в классе может быть несколько

Слайд 46





Как оно работает
При создании объекта от такого класса, по сути, происходит создание нового класса, где вместо типа-параметра (например, Т) подставляется конкретный тип данных.
Описание слайда:
Как оно работает При создании объекта от такого класса, по сути, происходит создание нового класса, где вместо типа-параметра (например, Т) подставляется конкретный тип данных.



Похожие презентации
Mypresentation.ru
Загрузить презентацию