Файл: Лекции 11 Что такое производный класс Какое отношение существует между базовым и производным классом.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 16
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Контрольные вопросы к лекции №11
-
Что такое производный класс? Какое отношение существует между базовым и производным классом?
Имеющиеся классы обычно называют базовыми (иногда порождающими), а новые классы, формируемые на основе базовых, - производными (порожденными), иногда классами-потомками или наследниками. Производные классы «получают наследство» - данные и методы своих классов - и, кроме того, могут пополняться собственными компонентами (данными и собственными методами).
Наследуемые компоненты не перемещаются в производный класс, а остаются в базовых классах. Сообщение, обработку которого не могут выполнить методы производного класса, автоматически передается в базовый класс. Если для обработки сообщения нужны данные, отсутствующие в производном классе, то их пытаются отыскать автоматически и незаметно для программиста в базовом классе.
-
Что такое иерархия классов? Что она из себя представляет при одиночном наследовании?
Иерархия классов позволяет определять новые классы на основе уже имеющихся.
При одиночном наследовании каждый класс имеет только один базовый класс. Базовый класс, производными от которого являются другие классы, объявляется раньше производных классов. Производный класс получается некой надстройкой над базовым классом, определяя в себе все, или почти все, свойства базового класса и имея свои собственные свойства.
-
Каково распределение прав доступа к членам производного класса? Какие типы наследования существуют?
При наследовании классов важную роль играет статус доступа (статус внешней видимости) компонентов. В иерархии классов соглашение относительно доступности компонентов класса следующее.
-
Собственные (private) методы и данные доступны только внутри того класса, где они определены. -
Защищенные (protected) компоненты доступны внутри класса, в котором они определены, и дополнительно доступны во всех производных классах. -
Общедоступные (public) компоненты класса видимы из любой точки программы, т.е. являются глобальными.
В определении и описании производного класса приводится список базовых классов, из которых он непосредственно наследует данные и методы. Между именем вводимого (нового) класса и списком базовых классов помещается двоеточие. Например, при таком определении
class S: X, Y, Z { ...};
класс S порожден классами X, Y, Z, откуда он наследует компоненты. Наследование компонента не выполняется, если его имя будет использовано в качестве имени компонента в определении производного класса S. По умолчанию из базовых классов наследуются методы и данные со спецификаторами доступа - public(общедоступные) и protected(защищенные).
-
В чем суть восстановления доступа при наследовании? В чем заключается отличие восстановления доступа к атрибутам и методам базового класса в производном классе?
Объявления (восстановление) доступа.
-
Объявления доступа дают возможность сделать опять защищенными или открытыми защищенные или открытые члены закрытого базового класса в производном классе соответственно. -
Объявления доступа позволяют сделать снова открытыми открытые члены базового класса в защищенном производном. (Ни этот, ни предыдущий пункт не выполняется, если в производном классе объявлены члены с теми же именами, что и в базовом классе). -
Для перегруженных функций позволяют вернуть им первоначальное ограничение доступа, которое они имели в базовом классе, если все они имели одинаковое ограничение доступа.
Производный класс имеет доступ к методам и атрибутам базового класса, объявленным во внешней и защищенной части базового класса, однако доступ к внутренней части базового класса не разрешен.