Спадщина в Java (з прикладом)
⚡ Розумний підсумок
Спадщина в Java — це механізм, за допомогою якого один клас отримує поля та методи іншого класу за допомогою ключового слова extends. Він сприяє повторному використанню коду та моделює зв'язок Is-A між суперкласом та його підкласами.

Що таке успадкування?
Спадкування це механізм, за якого один клас набуває властивості іншого класу. Наприклад, дитина успадковує риси своїх батьків. З успадкуванням ми можемо повторно використовувати поля та методи існуючого класу. Таким чином, успадкування сприяє багаторазовому використанню та є важливою концепцією ООП.
У чому полягає спадковість Java?
Java Спадкування це механізм, за якого один клас набуває властивості іншого класу. в Java, коли між двома класами існує зв’язок «Є-А», ми використовуємо успадкування. Батьківський клас називається суперкласом, а успадкований клас називається підкласом. Ключове слово extends використовується підкласом для успадкування особливостей суперкласу. Успадкування важливе, оскільки воно веде до повторного використання коду.
Java Синтаксис успадкування:
class subClass extends superClass { //methods and fields }
Види спадкування в Java
Ось різні типи успадкування в Java:
- Одиночне успадкування
- Множинне успадкування
- Багаторівневе успадкування
- Ієрархічне успадкування
- Гібридне успадкування
1. Одинарне успадкування:
У Single Inheritance один клас розширює інший клас (лише один клас).

На схемі вище клас B розширює лише клас A. Клас A є суперкласом, а клас B є підкласом.
2. Множинне успадкування:
Множинне успадкування — одне з успадкування в Java типи, де один клас розширює більше ніж один клас. Java не підтримує множинне успадкування.
Відповідно до діаграми вище, клас C розширює класи A і B.
3. Багаторівневе успадкування:
У багаторівневому успадкуванні один клас може успадковувати похідний клас. Таким чином, похідний клас стає базовим класом для нового класу.
Як показано на схемі, клас C є підкласом B, а B є підкласом класу A.
4. Ієрархічне успадкування:
В ієрархічному успадкуванні один клас успадковується багатьма підкласами.
Відповідно до прикладу вище, класи B, C і D успадковують той самий клас A.
5. Гібридне успадкування:
Гібридне успадкування — один із типів успадкування в Java який є комбінацією одинарного та множинного успадкування.
Відповідно до прикладу вище, усі публічні та захищені члени класу A успадковуються в клас D, спочатку через клас B, а потім через клас C.
Примітка: Java не підтримує гібридне/множинне успадкування
Спадщина в Java Приклад
Ось приклад успадкування в Java:
class Doctor { void Doctor_Details() { System.out.println("Doctor Details..."); } } class Surgeon extends Doctor { void Surgeon_Details() { System.out.println("Surgen Detail..."); } } public class Hospital { public static void main(String args[]) { Surgeon s = new Surgeon(); s.Doctor_Details(); s.Surgeon_Details(); } }
Супер ключове слово
Ключове слово super схоже на ключове слово «це». Ключове слово super можна використовувати для доступу до будь-якого елемента даних або методів батьківського класу. Ключове слово super можна використовувати в змінна, метод і рівень конструктора.
Синтаксис:
super.<method-name>();
Також перевірте: - це ключове слово в Java: Що таке і як використовувати з прикладом
Вивчіть успадкування в ООП на прикладі
Розглянемо те ж саме банківське додаток від попередній приклад.
Ми маємо відкрити два різні типи рахунків: один для збереження, а інший для перевірки (також відомий як поточний).
Давайте порівняємо та вивчимо, як ми можемо підійти до кодування з a перспектива структурованого та об'єктно-орієнтованого програмування.
Структурний підхід: У структурному програмуванні ми створимо дві функції –
- Один для зняття
- А інший для депозитних дій.
Оскільки робота цих функцій залишається однаковою для всіх облікових записів.
Підхід ООП: Під час використання ООП програмний підхід. Ми б створили два класи.
- Кожна з них має функції депозиту та виведення.
- Це призведе до зайвої додаткової роботи.
Запит на зміну програмного забезпечення
Тепер є зміни в специфікації вимог до чогось, що є настільки поширеним у індустрії програмного забезпечення. Ви повинні додати функціональність привілейованого банківського рахунку з овердрафтом. Для довідки, овердрафт – це можливість зняти суму, яка перевищує наявний баланс на вашому рахунку.
Структурний підхід: Використовуючи функціональний підхід, я маю змінити свою функцію вилучення, яка вже перевірена та базова. І додайте метод, як показано нижче, щоб подбати про нові вимоги.
Підхід ООП: Використовуючи підхід ООП, вам просто потрібно написати новий клас з унікальною реалізацією функції відкликання. Ми ніколи не торкалися перевіреного фрагмента коду.
Ще один запит на зміну
Що робити, якщо вимога зміниться? Подобається додати рахунок кредитної картки з власними унікальними вимогами щодо депозитів.
Структурний підхід: Використовуючи структурний підхід, ви повинні знову змінити перевірений фрагмент коду депозиту.
Підхід ООП: Але використовуючи об'єктно-орієнтований підхід, ви просто створите новий клас з його унікальною реалізацією методу депозиту (виділено червоним кольором на зображенні нижче). Тож, хоча структурне програмування спочатку здається простим підходом, ООП виграє в довгостроковій перспективі.
Переваги успадкування в ООП
Але можна заперечити, що в усіх класах ви маєте повторювані частини коду.
Щоб подолати це, ви створюєте батьківський клас, скажімо «рахунок» і реалізуєте ту саму функцію депозиту та зняття. І зробіть дочірні класи успадкованими класами «облікового запису». Щоб вони мали доступ до функцій зняття та депозиту в класі рахунків. Функції не потрібно реалізовувати окремо. Це є Спадкування в java. .











