Що таке успадкування?
Спадкування - це механізм, при якому один клас набуває властивості іншого класу. Наприклад, дитина успадковує риси своїх батьків. За допомогою успадкування ми можемо повторно використовувати поля та методи існуючого класу. Отже, успадкування сприяє багаторазовому використанню і є важливою концепцією ООП.
У цьому підручнику ви дізнаєтесь-
- Види успадкування
- Спадщина в Java
- Приклад успадкування Java
- Супер ключове слово
- Дізнайтеся спадщину в ООП на прикладі
Види успадкування
У Java існують різні типи успадкування:
Одиночне успадкування:
При одиночному спадкуванні один клас розширює інший клас (лише один клас).
На наведеній вище схемі клас B поширюється лише на клас A. Клас A є суперкласом, а клас B - підкласом.
Множинне успадкування:
При множинному спадкуванні один клас поширюється більше, ніж на один клас. Java не підтримує множинне успадкування.
Відповідно до діаграми вище, клас C поширює на клас A і клас B.
Багаторівневе успадкування:
У багаторівневому спадкуванні один клас може успадковувати від похідного класу. Отже, похідний клас стає базовим для нового класу.
Як показано на схемі Клас C є підкласом B, а B є підкласом Класу A.
Ієрархічне успадкування:
При ієрархічному успадкуванні один клас успадковується багатьма підкласами.
Як зазначено у наведеному вище прикладі, класи B, C та D успадковують один і той же клас A.
Гібридне успадкування:
Гібридне успадкування - це поєднання одиночного та багаторазового успадкування.
Як зазначено у наведеному вище прикладі, усі загальнодоступні та захищені члени класу A успадковуються до класу D, по-перше через клас B, а по-друге через клас C.
Примітка: Java не підтримує гібридне / множинне успадкування
Спадщина в Java
НАСЛІДЖЕННЯ ЯВИ - це механізм, при якому один клас набуває властивості іншого класу. У Java, коли існує зв'язок "Є-А" між двома класами, ми використовуємо Спадщину. Батьківський клас називається суперкласом, а успадкований - підкласом. Ключове слово
extends
використовується підкласом для успадкування особливостей супер класу.
Спадщина важлива, оскільки вона призводить до повторного використання коду.
Синтаксис успадкування Java:
class subClass extends superClass{//methods and fields}
Приклад успадкування 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 схоже на ключове слово "this".
Ключове слово super може використовуватися для доступу до будь-якого члена даних або методів батьківського класу.
Ключове слово Super може використовуватися на рівні змінних, методів та конструкторів.
Синтаксис:
super.();
Дізнайтеся спадщину в ООП на прикладі
Розглянемо ту саму банківську заявку з попереднього прикладу.
Ми повинні відкрити два різні типи рахунків, один для збереження, а інший для перевірки (також відомий як поточний).
Давайте порівняємо та вивчимо, як ми можемо підійти до кодування з точки зору структурованого та об’єктно-орієнтованого програмування. Структурний підхід : У структурованому програмуванні ми створимо дві функції -
- Один зняти
- А інший - на депозит.
Оскільки робота цих функцій залишається незмінною в усіх рахунках.
Підхід ООП : Використовуючи підхід до програмування ООП. Ми створили б два класи.
- Кожен з них має функції депозиту та зняття коштів.
- Це призведе до зайвої додаткової роботи.
Запит на зміну програмного забезпечення
Зараз відбулася зміна специфікації вимог до чогось, що настільки поширене в галузі програмного забезпечення. Ви повинні додати функціональний привілейований банківський рахунок за допомогою овердрафту. У фоновому режимі овердрафт - це можливість, з якої ви можете зняти суму, більшу, ніж доступна сума на вашому рахунку.
Структурний підхід: Використовуючи функціональний підхід, я маю змінити свою функцію виведення, яка вже перевірена та базова. А додавши метод, як показано нижче, подбає про нові вимоги.
Підхід ООП: Використовуючи підхід ООП, вам просто потрібно написати новий клас з унікальною реалізацією функції виведення. Ми ніколи не торкалися перевіреного фрагмента коду.
Ще один запит на зміну
Що робити, якщо вимога зміниться далі? Хочете додати рахунок на кредитній картці зі своєю унікальною вимогою щодо депозитів .
Структурний підхід: Використовуючи структурний підхід, вам доведеться знову змінити перевірений фрагмент коду депозиту.
Підхід ООП : Але використовуючи об’єктно-орієнтований підхід, ви просто створите новий клас з його унікальною реалізацією методу депозиту (виділено червоним на малюнку нижче).
Тож, незважаючи на те, що спочатку структурне програмування здається простим підходом, ООП виграє в довгостроковій перспективі.
Перевага спадкування в ООП
Але можна стверджувати, що у всіх класах у вас є повторювані фрагменти коду.
Щоб подолати це, ви створюєте батьківський клас, говорите "рахунок" і реалізуєте ту саму функцію депозиту та зняття. І зробіть дочірні класи успадкованими класами "рахунок". Так що вони матимуть доступ до функцій зняття та депозиту в класі рахунку.
Функції не повинні реалізовуватися індивідуально. Це спадщина в Java. .