Краткие теоретические сведения

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

Наследование используется не только при разработке классов, но и при проектировании приложения. Например, в C++Builder есть класс Label (метка). Если поместить экземпляр этой метки в форму (экземпляр Form), то свойство «шрифт» метки примет значение свойства «шрифт» из экземпляра Form. Меняя параметры шрифта у родителя (Form), мы добиваемся изменения этих параметров у потомков (наследников). То есть метка автоматически будет наследовать это свойство от экземпляра Form, на который она помещена. Это же относится, например, и к классу Button (кнопка).

Простым (или одиночным) называется наследование, при котором производный класс имеет только одного родителя. Формально наследование одного класса от другого задается следующей конструкций:

 

class имя_класса_потомка: [модификатор_доступа] имя_базового_класса

{ тело_класса };

 

Модификатор доступа определяет доступность элементов базового класса в классе−наследнике. Квадратные скобки не являются элементом синтаксиса, а показывают, что модификатор может отсутствовать. Этот модификатор называется модификатором наследования.

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

Возможны четыре варианта наследования.

1. Класс от класса.

2. Класс от структуры.

3. Структура от структуры.

4. Структура от класса.

 

Доступность элементов базового класса из классов−наследников изменяется в зависимости от модификаторов доступа в базовом классе и модификатора наследования. Каким бы ни был модификатор наследования, приватные элементы базового класса недоступны в его потомках. В табл. 1.1 приведены все варианты доступности элементов базового класса в производном классе при любых вариантах модификатора наследования.

 

Таблица 1.1 Доступ к элементам базового класса в классе−наследнике

Модификатор доступа в базовом классе Модификатор наследования Доступ в производном классе
struct class
public отсутствует public private
protected отсутствует public private
private отсутствует недоступны недоступны
public public public public
protected public protected protected
private public недоступны недоступны
public protected protected protected
protected protected protected protected
private protected недоступны недоступны
public private private private
protected private private private
private private недоступны недоступны

 

Если модификатор наследования — public, наследование называется открытым. Модификатор protectedопределяет защищенное наследование, а слово private означает закрытое наследование.








Дата добавления: 2015-07-30; просмотров: 814;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.