Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на контрольные вопросы по лекции 11

.docx
Скачиваний:
6
Добавлен:
20.06.2023
Размер:
16.6 Кб
Скачать

Ответы на контрольные вопросы по лекции 11

Дисциплина: объектно-ориентированное программирование

Студент: Заболотников М.Е.

Группа: 9373

  1. Что такое производный класс? Какое отношение существует между базовым и производным классом?

Производный класс – это новый класс, сформированный на основе базового. Производный и базовый классы состоят в отношении иерархическом, то есть в отношении обобщения, или наследования.

  1. Что такое иерархия классов? Что она из себя представляет при одиночном наследовании?

Иерархия классов – это вид отношения между классами, когда один из них является производящим, а другой наследует у него какие-то атрибуты и методы, при этом становится производным. В свою очередь, производный класс может становиться базовым для другого, производимого из него класса.

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

  1. Каково распределение прав доступа к членам базового класса из методов и объектов производного класса?

В иерархии производный объект наследует разрешенные для наследования компоненты всех базовых объектов. Другими словами, у объекта имеется возможность доступа к данным и методам всех своих базовых классов.

Кроме того, если считать, что объекты, т.е. конкретные представители классов, обмениваются сообщениями и обрабатывают их, используя методы и данные классов, то при обработке сообщения используются, во-первых, общедоступные члены всех классов программы; во-вторых, защищенные компоненты базовых и рассматриваемого классов и, наконец, собственные компоненты рассматриваемого класса. Собственные компоненты базовых и производных классов, а также защищенные компоненты производных классов не доступны для сообщения и не могут участвовать в его обработке.

  1. Каково распределение прав доступа к членам производного класса? Какие типы наследования существуют?

Собственные (private) методы и данные доступны только внутри того класса, где они определены. Защищенные (protected) компоненты доступны внутри класса, в котором они определены, и дополнительно доступны во всех производных классах. Общедоступные (public) компоненты класса видимы из любой точки программы, т.е. являются глобальными.

Существуют два типа наследования: одиночное и множественное.

  1. В чем суть восстановления доступа при наследовании? В чем заключается отличие восстановления доступа к атрибутам и методам базового класса в производном классе?

Объявления доступа дают возможность сделать опять защищенными или открытыми защищённые или открытые члены закрытого базового класса в производном классе соответственно. Объявления доступа позволяют сделать снова открытыми открытые члены базового класса в защищенном производном. (Ни этот, ни предыдущий пункт не выполняется, если в производном классе объявлены члены с теми же именами, что и в базовом классе). Для перегруженных функций позволяют вернуть им первоначальное ограничение доступа, которое они имели в базовом классе, если все они имели одинаковое ограничение доступа.