ООП. Часть 3. Полиморфизм презентация

Слайд 2

Что такое полиморфизм? Способность функции выбирать правильную версию метода в

Что такое полиморфизм?

Способность функции выбирать правильную версию метода в зависимости от

типа вызывающего объекта.
Возможность создавать функции для работы с произвольным классом из иерархии.
Самая черная магия из всех.
Слайд 3

Переменная базового класса One Two Three var a: One;

Переменная базового класса

One

Two

Three

var a: One; <- переменная базового класса.

Слайд 4

Слайд 5

Слайд 6

Переменная базового класса var a: One = new One(); ?

Переменная базового класса

var a: One = new One(); ? норм
var b:

One = new Two(); ? норм
var c: One = new Three(); ? норм
var d: Two = new Two(); ? норм
var e: Two = new Three(); ? норм
var f: Two = new One(); ? !ОШИБКА!

One

Two

Three

Слайд 7

Вызов нужной реализации метода. При наследовании класс-сыночек получает от класса-папашки

Вызов нужной реализации метода.

При наследовании класс-сыночек получает от класса-папашки всего его

поля и методы. Класс-сыночек можно перегрузить (переписать) методы класса папашки.
А если у нас ситуация:
var b: One = new Two();
b.Say();
То из какого класса вызовется метод Say(): Из One или Two??
Слайд 8

Слайд 9

Слайд 10

Слайд 11

Про вызов нужной реализации функции Вообще возможно 2 выхода из

Про вызов нужной реализации функции

Вообще возможно 2 выхода из ситуации, изложенной

выше.
1) зарешает транслятор (раннее связывание). В этом случае метод, который будем вызывать, определится типом ПЕРЕМЕННОЙ.
2) вопрос решится на этапе выполнения программы (позднее связывание). В этом случае метод будет вызывать из того класса, к которому принадлежит ОБЪЕКТ, спрятанной под переменной
Слайд 12

Передача параметрво в функцию Помимо создания под переменной базового класса

Передача параметрво в функцию

Помимо создания под переменной базового класса объектов из

всей иерархии, в функцию вида
f(obj: One)
Можно передавать объект класса ниже One по иерархии

One

Two

Three

Слайд 13

Имя файла: ООП.-Часть-3.-Полиморфизм.pptx
Количество просмотров: 62
Количество скачиваний: 0