Спадщина в Java (з прикладом)
Що таке успадкування?
Спадкування це механізм, за якого один клас набуває властивості іншого класу. Наприклад, дитина успадковує риси своїх батьків. З успадкуванням ми можемо повторно використовувати поля та методи існуючого класу. Таким чином, успадкування сприяє багаторазовому використанню та є важливою концепцією ООП.
У чому полягає спадковість 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. .











