Ответы на контрольные вопросы по лекции 11
.docxОтветы на контрольные вопросы по лекции 11
Дисциплина: объектно-ориентированное программирование
Студент: Заболотников М.Е.
Группа: 9373
Что такое производный класс? Какое отношение существует между базовым и производным классом?
Производный класс – это новый класс, сформированный на основе базового. Производный и базовый классы состоят в отношении иерархическом, то есть в отношении обобщения, или наследования.
Что такое иерархия классов? Что она из себя представляет при одиночном наследовании?
Иерархия классов – это вид отношения между классами, когда один из них является производящим, а другой наследует у него какие-то атрибуты и методы, при этом становится производным. В свою очередь, производный класс может становиться базовым для другого, производимого из него класса.
При одиночном наследовании некоторые имена методов (компонентных функций) и (или) компонентных данных базового класса могут быть по-новому определены в производном классе. В этом случае соответствующие компоненты базового класса становятся недоступными из производственного класса. Для доступа из производственного класса к компонентам базового класса, имена которых повторно определены в производном, используется операция "::" указания (уточнения) области видимости.
Каково распределение прав доступа к членам базового класса из методов и объектов производного класса?
В иерархии производный объект наследует разрешенные для наследования компоненты всех базовых объектов. Другими словами, у объекта имеется возможность доступа к данным и методам всех своих базовых классов.
Кроме того, если считать, что объекты, т.е. конкретные представители классов, обмениваются сообщениями и обрабатывают их, используя методы и данные классов, то при обработке сообщения используются, во-первых, общедоступные члены всех классов программы; во-вторых, защищенные компоненты базовых и рассматриваемого классов и, наконец, собственные компоненты рассматриваемого класса. Собственные компоненты базовых и производных классов, а также защищенные компоненты производных классов не доступны для сообщения и не могут участвовать в его обработке.
Каково распределение прав доступа к членам производного класса? Какие типы наследования существуют?
Собственные (private) методы и данные доступны только внутри того класса, где они определены. Защищенные (protected) компоненты доступны внутри класса, в котором они определены, и дополнительно доступны во всех производных классах. Общедоступные (public) компоненты класса видимы из любой точки программы, т.е. являются глобальными.
Существуют два типа наследования: одиночное и множественное.
В чем суть восстановления доступа при наследовании? В чем заключается отличие восстановления доступа к атрибутам и методам базового класса в производном классе?
Объявления доступа дают возможность сделать опять защищенными или открытыми защищённые или открытые члены закрытого базового класса в производном классе соответственно. Объявления доступа позволяют сделать снова открытыми открытые члены базового класса в защищенном производном. (Ни этот, ни предыдущий пункт не выполняется, если в производном классе объявлены члены с теми же именами, что и в базовом классе). Для перегруженных функций позволяют вернуть им первоначальное ограничение доступа, которое они имели в базовом классе, если все они имели одинаковое ограничение доступа.