1. Понятие позднего и раннего связывания. Ключевые слова virtual, override


Рисунок 2. Раннее и позднее связывание для метода


Download 0.51 Mb.
bet3/17
Sana01.09.2023
Hajmi0.51 Mb.
#1672075
1   2   3   4   5   6   7   8   9   ...   17
Bog'liq
C# да ПОЛИМОРФИЗМ ва ИНТЕРФЕЙСЛАР

Рисунок 2. Раннее и позднее связывание для метода Print() на примере трех классов A, B, C

Вызов метода Print() по ссылке на объект класса C




2. Что такое полиморфизм? Динамический полиморфизм
Полиморфизм – это свойство программного кода изменяться в зависимости от ситуации, которая возникает в момент выполнения программы.
Главный принцип полиморфизма – один интерфейс, много реализаций (методов). В терминах языка программирования, полиморфизм – это возможность с помощью ссылки на базовый класс обращаться к элементам (методов) экземпляров унаследованных классов единым унифицированным способом.
Использование преимуществ полиморфизма возможно в ситуациях:

  • когда классы образовывают иерархию с помощью концепции наследования;

  • когда в классах, которые образовывают иерархию, есть элементы (методы, свойства и т.п.) с одинаковой сигнатурой. В таких случаях возникает понятие «переопределение метода» (method override).

В языке программирования C# полиморфизм обеспечивается с помощью ключевых слов virtual и override. Благодаря использованию этих ключевых слов обеспечивается динамический полиморфизм. Термин «динамический» означает, что вызов виртуального элемента осуществляется динамично во время выполнения программы в зависимости от типа объекта, для которого этот элемент вызывается.
3. Для каких элементов класса можно применять полиморфизм?
Полиморфизм можно применять для следующих элементов:

  • методов;

  • свойств;

  • индексаторов;

  • событий.



4. Схематическое объяснение полиморфизма
На рисунке 3 демонстрируется применение полиморфизма на примере двух классов.

Рисунок 3. Реализация полиморфизма на примере двух классов A, B


5. Полиморфизм в случае передачи в метод ссылки на базовый класс. Позднее связывание
В любой метод может быть передана ссылка на базовый класс. С помощью этой ссылки также можно вызвать методы, свойства которые поддерживают полиморфизм.

Download 0.51 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   17




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling