Спадщина в Java (з прикладом)

Що таке успадкування?

Спадкування це механізм, за якого один клас набуває властивості іншого класу. Наприклад, дитина успадковує риси своїх батьків. З успадкуванням ми можемо повторно використовувати поля та методи існуючого класу. Таким чином, успадкування сприяє багаторазовому використанню та є важливою концепцією ООП.

У чому полягає спадковість Java?

Java Спадкування це механізм, за якого один клас набуває властивості іншого класу. в Java, коли між двома класами існує зв’язок «Є-А», ми використовуємо успадкування. Батьківський клас називається суперкласом, а успадкований клас називається підкласом. Ключове слово extends використовується підкласом для успадкування особливостей суперкласу. Успадкування важливе, оскільки воно веде до повторного використання коду.

Java Синтаксис успадкування:

class subClass extends superClass  
{  
   //methods and fields  
} 

Види спадкування в Java

Ось різні типи успадкування в Java:

  1. Одиночне успадкування
  2. Множинне успадкування
  3. Багаторівневе успадкування
  4. Ієрархічне успадкування
  5. Гібридне успадкування

1. Одинарне успадкування:

У Single Inheritance один клас розширює інший клас (лише один клас).

Єдина спадщина в Java
Одиночне успадкування

На схемі вище клас B розширює лише клас A. Клас A є суперкласом, а клас B є підкласом.

2. Множинне успадкування:

Множинне успадкування — одне з успадкування в Java типи, де один клас розширює більше ніж один клас. Java не підтримує множинне успадкування.

Множинне успадкування в Java
Java Множинне успадкування

Відповідно до діаграми вище, клас C розширює класи A і B.

3. Багаторівневе успадкування:

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

Багаторівневе успадкування в Java
Багаторівневе успадкування

Як показано на схемі, клас C є підкласом B, а B є підкласом класу A.

4. Ієрархічне успадкування:

В ієрархічному успадкуванні один клас успадковується багатьма підкласами.


Ієрархічне успадкування в Java
Ієрархічне успадкування

Відповідно до прикладу вище, класи B, C і D успадковують той самий клас A.

5. Гібридне успадкування:

Гібридне успадкування — один із типів успадкування в Java який є комбінацією одинарного та множинного успадкування.


Гібридне успадкування
Гібридне успадкування

Відповідно до прикладу вище, усі публічні та захищені члени класу A успадковуються в клас D, спочатку через клас B, а потім через клас C.

Примітка: Java не підтримує гібридне/множинне успадкування

Спадщина в Java Приклад

Ось приклад успадкування в 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 перспектива структурованого та об'єктно-орієнтованого програмування.

Структурний підхід: У структурному програмуванні ми створимо дві функції –

  1. Один для зняття
  2. А інший для депозитних дій.

Оскільки робота цих функцій залишається однаковою для всіх облікових записів.

Спадкування в ООП

ООП-підхід: під час використання ООП програмний підхід. Ми б створили два класи.

  • Кожна з них має функції депозиту та виведення.
  • Це призведе до зайвої додаткової роботи.

Спадкування в ООП

Запит на зміну програмного забезпечення

Тепер є зміни в специфікації вимог до чогось, що є настільки поширеним у індустрії програмного забезпечення. Ви повинні додати функціональність привілейованого банківського рахунку з овердрафтом. Для довідки, овердрафт – це можливість зняти суму, яка перевищує наявний баланс на вашому рахунку.

Запит на зміну програмного забезпечення

Структурний підхід: Використовуючи функціональний підхід, я маю змінити свою функцію вилучення, яка вже перевірена та базова. І додайте метод, як показано нижче, щоб подбати про нові вимоги.

Запит на зміну програмного забезпечення

Підхід ООП: Використовуючи підхід ООП, вам просто потрібно написати новий клас з унікальною реалізацією функції відкликання. Ми ніколи не торкалися перевіреного фрагмента коду.

Запит на зміну програмного забезпечення

Ще один запит на зміну

Що робити, якщо вимога зміниться? Подобається додати рахунок кредитної картки з власними унікальними вимогами щодо депозитів.

Вимога щодо кількох запитів на зміну програмного забезпечення

Структурний підхід: Використовуючи структурний підхід, ви повинні знову змінити перевірений фрагмент коду депозиту.

Структурний підхід до багаторазового запиту на зміну програмного забезпечення

ООП-підхід: Але використовуючи об’єктно-орієнтований підхід, ви просто створите новий клас із його унікальною реалізацією методу депозиту (виділено червоним на зображенні нижче). Отже, незважаючи на те, що спочатку структурне програмування здається простим підходом, ООП перемагає в довгостроковій перспективі.

Підхід ООП до запиту на кілька змін

Переваги успадкування в ООП

Але можна заперечити, що в усіх класах ви маєте повторювані частини коду.

Щоб подолати це, ви створюєте батьківський клас, скажімо «рахунок» і реалізуєте ту саму функцію депозиту та зняття. І зробіть дочірні класи успадкованими класами «облікового запису». Щоб вони мали доступ до функцій зняття та депозиту в класі рахунків. Функції не потрібно реалізовувати окремо. Це є Спадкування в java. .

Переваги успадкування в ООП

Переваги успадкування в ООП

Підсумуйте цей пост за допомогою: