Page 70 - 6253
P. 70
РОЗДІЛ 4
ІЄРАРХІЯ КЛАСІВ ТА ПОЛІМОРФІЗМ
4.1. Наслідування
Однією з найбільших переваг об’єктно-орієнтованого програмування є
багаторазове використання програмного коду, що на практиці проявляється у
використанні уже існуючих класів. Існує два способи реалізації цієї ідеї. Перший
полягає у створенні всередині нового класу об’єктів існуючих класів. Такий підхід
називають композицією. Новий клас є набором об’єктів і фактично використовує
функціональність існуючого коду, а не його структуру. Другий підхід полягає у
використанні структури існуючого класу, до якого додають новий код, при цьому не
модифікуючи існуючий. Такий підхід у концепції об’єктно-орієнованого
програмування називають наслідуванням (inheritance). Завдяки наслідуванню
будується ієрархія класів. Клас, від якого наслідують, називають базовим класом або
суперкласом (superclass), а клас який наслідує називається підкласом. В такому
контексті підклас виступає спеціалізованою версією базового класу. Базовий клас і
підклас є абсолютно самостійними класами. Підклас може виступати в ролі базового
класу для іншого класу програми. При цьому кожний підклас наслідує всі
властивості свого базового класу.
У мові Java оголошення класу, який наслідує базовий клас, має наступний
вигляд:
class Ім’я_Підкласу extends Ім’я_Суперкласу {
//тіло класу
}
Для того щоб вказати, що підклас наслідує базовий клас використовується
ключове слово extends, після якого іде ім’я суперкласу. Проте, навіть без явного
вказування імені суперкласу, усі класи в мові Java, автоматично наслідують від
кореневого класу з іменем Object.
Із підкласу можна отримати доступ до членів базового класу, які оголошені із
модифікатором доступу public, а також до захищених членів базового класу з
модифікатором доступу protected. Члени класу з модифікатором доступу private,
69