Специфікатор доступу protected

Ми навчилися розширювати можливості класу, майже не модифікуючи його код. Розглянемо, що ж ми все-таки поміняли в класі Counter.

Дані класу, з яким ми раніше познайомилися, мали специфікатор доступу private. В програмі 17.1 ми використовуємо інший специфікатор доступу – protected. Розглянемо його призначення.

Згадаємо, що нам відомо про специфікатори доступу private і public. У методів класу є доступ до членів (полів і методів) класу, якщо вони мають будь-який з цих специфікаторів. Але при використанні об’єкту, оголошеного в програмі, можна дістати доступ тільки до даних зі специфікатором public. Однак при використанні успадковування в нас з’являється ряд додаткових можливостей. Виникає питання, чи можуть методи похідного класу мати доступ до членів базового класу? Це можливо тоді, коли ці члени мають специфікатор доступу public або protected. До членів, оголошених як private, доступу нема.

Член, оголошений як protected, доступний методам свого класу і методам будь-якого похідного класу. При цьому він не буде доступним з функцій, які не належать до цих класів, наприклад, з функції main().

Далі приведена таблиця, яка відображає можливості використання специфікаторів доступу в різних ситуаціях.

Специфікатор доступу Доступ з самого класу Доступ з похідних класів Доступ із зовнішніх класів та функцій
public + + +
protected + + -
private + - -

 

Таким чином, якщо ми пишемо клас, який пізніше буде використовуватися як базовий при успадковуванні, то дані, до яких треба мати доступ, слід оголошувати як protected.

 








Дата добавления: 2015-08-26; просмотров: 1370;


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

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

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

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