Разграничение доступа к элементам базового класса
Мы уже рассказывали, что можно управлять доступом к элементам класса, указывая спецификаторы доступа для элементов класса. Элементы класса, объявленные с спецификаторами protected и private доступны только из методов самого класса. Элементы с спецификаторами public доступны не только из методов класса, но и извне.
При создании порожденного класса встает вопрос о доступе к элементам базового класса. Оказывается, когда вы наследуете класс из базового класса, вы можете управлять разграничением доступа к элементам базового класса. При этом имеет значение то, как объявлены элементы базового класса и какой спецификатор доступа указан для базового класса.
По следующей таблице вы можете определить как будут доступны элементы базового класса в зависимости от спецификатора доступа базового класса и спецификаторов доступа элементов базового класса.
Спецификатор доступа базового класса | |||||||
Спецификатор доступа элемента базового класса | public | protected | private | ||||
public | Доступны как public | Доступны как protected | Доступны как private | ||||
protected | Доступны как protected | Доступны как protected | Доступны как private | ||||
private | Недоступны | Недоступны | Недоступны |