Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP Answers (selectively).docx
Скачиваний:
10
Добавлен:
02.08.2019
Размер:
30.29 Кб
Скачать
  1. Полиморфизм. Функциональное назначение. Способы реализации. Примеры применения.

Если я определил метод, который перемещает по полю экрана объект класса "животное", а "мышь" и "орел" — потомки класса "животное", то я могу этот метод класса "животное" применить и к "мыши", и к "орлу", и к "животному" тоже. То есть аргумент "животное" этого метода имеет полиморфный тип. Больше того, я могу для "орла" переопределить метод, но оставить для него то же имя. Тогда, если я перемещаю "животное", которое на самом деле "орел" или "мышь", то для "орла" будет использован переопределенный метод, а для "мыши" нет, так как мы для нее метод не переопределяли.

То есть может существовать несколько одноименных методов, которые при применении к полиморфному аргументу выбираются в зависимости от конкретного типа полиморфного аргумента. Это и называется полиморфизмом. Выбор метода по типу аргумента обычно производится при выполнении программы (динамическое, или позднее связывание), хотя можно было бы во многих случаях выбирать метод и при компиляции (статическое, или раннее связывание), но это дает меньше возможностей и поэтому обычно в языках программирования не применяется.

То есть полиморфизм — изменение содержания метода в зависимости от уровня класса, к которому он применяется.

  1. Перегрузка методов. Функциональное назначение. Способ реализации. Примеры применения.

  1. Виртуальные методы. Функциональное назначение. Примеры применения.

  1. Перегрузка операций. Функциональное назначение. Способ реализации. Примеры применения.

  1. Управление областями видимости членов класса. Функциональное назначение. Способ реализации. Примеры применения.

  2. Исключительные ситуации. Понятие. Способы обработки исключительных ситуаций. Примеры применения.

  3. Интерфейсы. Функциональное назначение. Иерархия интерфейсов. Множественное наследование: проблемы и способы их разрешения.

  1. Концепция типа данных. Встроенные (Build-in) типы данных и их реализация в языке С#.

  2. Концепция типа данных. Соглашения о совместимости и приведение типов.

  3. Концепция типа данных. Числовые типы данных.

  4. Концепция типа данных. Символьные типы данных.

  5. Концепция типа данных. Составные типы данных. Массивы и их реализация в С#. Структуры.

  6. Концепция типа данных. Явное и неявное преобразование типов.

  7. Концепция типа данных. Определение собственных типов данных.

  8. Концепция типа данных. Значащие (размерные) (Value type) и ссылочные (Reference type) типы данных. Упаковка и распаковка (Boxing, Unboxing).

  9. Концепция типа данных. Переменные и константы и их реализация в С#.

  10. Принцип модульности программ. Глобальные и локальные имена. Область видимости имен. Выбор области видимости.

  11. Принцип модульности программ. Метод, как отдельный модуль программы. Интерфейсная и скрытая часть метода. Формальные и фактические параметры метода. Примеры применения.

  12. Унарные и мультипликативные операции. Примеры применений.

  13. Аддитивные и сдвиговые операции. Примеры применений.

  14. Операции отношения и действий надо типами данных. Примеры применений.

  15. Логические операции. Примеры применений.

  16. Организация циклов в С#. Примеры применений.

  17. Операторы перехода и оператор присваивания.

  18. Операторы условного перехода. Примеры применений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]