Різниця між спадковістю та інтерфейсом на Java

Ключова різниця - успадкування vs Інтерфейс на Java
 

Java - мова програмування, розроблена компанією Sun Microsystems. Java може використовуватися для розробки різних програм. Це багатопарадигмічна мова, яка підтримує об'єктно-орієнтований, структурований і т.д. Основна перевага Java полягає в тому, що вона підтримує об'єктно-орієнтоване програмування (OOP). Програміст може створювати класи та об'єкти. В ООП є чотири стовпи. Це успадкування, поліморфізм, абстракція та інкапсуляція. Спадкування та інтерфейси пов'язані з OOP. The ключова різниця між успадкуванням та інтерфейсом - це те, що успадкування - це отримання нових класів із існуючих класів, а інтерфейс - реалізація абстрактних класів та множинного успадкування.

ЗМІСТ

1. Огляд та ключові відмінності
2. Що таке спадкування в Java
3. Що таке інтерфейс у Java
4. Подібність між успадкуванням та інтерфейсом на Java
5. Порівняльне порівняння - Спадщина та інтерфейс на Java у табличній формі
6. Підсумок

Що таке спадщина в Java?

Спадкування дозволяє досягти використання коду. Спадкування допомагає повторно використовувати атрибути та методи існуючого класу. Механізм виведення нового класу за допомогою старого класу називається успадкуванням. Старий клас відомий як батьківський клас або суперклас. Похідний клас називається дочірнім класом або підкласом.

Синтаксис успадкування Java полягає в наступному.

клас subclass_name розширює ім'я суперкласу

змінну декларацію;

декларація методу;

Концепцію спадкування можна пояснити, використовуючи наступний приклад. Припустимо, що існує клас під назвою A наступним чином.

публічний клас A

публічна недійсна сума ()

System.out.println ("Сума");

Якщо ми хочемо додати новий метод без зміни існуючого класу, ми можемо зробити це наступним чином.

публічний клас B

публічна недійсна суб ()

System.out.println ("Sub");

Програміст може використовувати спадкування для використання суми класу A ().

відкритий клас B поширює клас A

публічна недійсна суб ()

System.out.println ("Sub");

У головній функції можна створити об’єкт B і call sub (), який належить до класу B та sum (), який належить до класу A за допомогою успадкування.

public static void main (String [] args)

B obj = новий B ();

obj.sub ();

obj.sum ();

Існують різні види успадкування. Вони є одинарним успадкуванням, багатократним успадкуванням, багаторівневим успадкуванням та ієрархічним успадкуванням. В разове успадкування, є один базовий клас і один похідний клас. В багаторівневе успадкування, є три класи, а саме базовий клас, проміжний клас та похідний клас. Проміжний клас успадковує від базового класу, а похідний клас успадковує від проміжного класу. В ієрархічне успадкування, є один базовий клас і багато похідних класів. Існує спеціальний тип, відомий як Гібридне успадкування. Це поєднання двох або більше видів успадкування.

Малюнок 01: Спадщина

В Багатократне успадкування існує багато базових класів і один похідний клас. Припустимо, що клас A і B є базовими класами. Клас С - похідний клас. Якщо обидва класи A і B мають однаковий метод, і програміст викликає цей метод із похідного класу, це спричинить проблему двозначності. Успадкування двох класів може спричинити помилку часу компіляції. Тому множинне успадкування не підтримується на Java. Для подолання цієї проблеми можна використовувати інтерфейс.

Що таке інтерфейс у Java?

Абстракція - це процес приховування деталей реалізації та відображення лише функціональних можливостей користувачеві. Абстрагування можна досягти за допомогою абстрактних класів або інтерфейсів. Абстрактний метод - це метод без реалізації. Клас, що має хоча б один абстрактний метод, - це абстрактний клас. Приклад абстрактного класу такий.

абстрактний клас А

абстрактна нікчемна сума ();

Припустимо, що існує два абстрактних класи як A і B. Для реалізації абстрактних методів A і B створюється новий клас C. Тоді клас C повинен поширюватись як на A, так і на B. Але множинне успадкування в Java не підтримується. Тому слід використовувати інтерфейси. Інтерфейси можна використовувати для декларування методів, але визначити методи неможливо. Неможливо створити об’єкт за допомогою інтерфейсів. Клас C повинен реалізувати всі методи в інтерфейсах A і B.

інтерфейс A

нікчемна сума ();

інтерфейс B

void sub ();

клас C реалізує A, B

публічна недійсна сума ()

System.out.println ("Підсумовування");

публічна недійсна суб ()

System.out.println ("Віднімання");

Тепер в основній програмі можна створити об’єкт C і викликати обидва методи.

public static void main (String [] args)

C obj = новий C ();

obj.sum ();

obj.sub ();

Отже, інтерфейси можна використовувати для реалізації декількох спадок.

Іншим використанням інтерфейсів є те, що він забезпечує безпеку. Перегляньте наведений нижче код.

інтерфейс A

нікчемна сума ();

клас B реалізує A

публічна недійсна сума ()

System.out.println ("Підсумовування");

публічне недійсне множення ()

System.out.println ("Множення");

Створюючи об’єкт B, можна викликати обидва методи sum () та множити (). Якщо програміст хоче обмежити використання функції multiply (), можливо наступним чином.

public static void main (String [] args)

A obj = новий B ();

obj.sum ();

A obj = новий B (); створить об’єкт. Він типу A і пам'ять розподіляється як B. Можна викликати суму (), але не може виконати множення (). Це обмеження робиться за допомогою інтерфейсів.

Які подібності між успадкуванням та інтерфейсом у Java?

  • Обидві концепції пов'язані з об'єктно-орієнтованим програмуванням
  • Обидва представляють відносини IS-A.

Яка різниця між успадкуванням та інтерфейсом на Java?

Спадщина проти інтерфейсу на Java

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

Підсумок - спадкування vs Інтерфейс на Java

Java - це мова багатогранної парадигми, яка підтримує об'єктно-орієнтоване програмування. Спадкування та інтерфейси пов'язані з об'єктно-орієнтованим програмуванням. Різниця між успадкуванням та інтерфейсом полягає в тому, що спадкування полягає у виведенні нових класів із існуючих класів та інтерфейсів - це реалізація абстрактних класів та множинного успадкування.

Завантажте версію PDF Inheritance vs Interface на Java

Ви можете завантажити PDF-версію цієї статті та використовувати її в офлайн-цілях відповідно до примітки. Завантажте тут версію PDF тут. Різниця між успадкуванням та інтерфейсом на Java

Довідка:

1.Будинка, Підручники. «Наслідування Java»., Підручники, 31 жовтня 2017. Доступно тут 
2. Пункт, Підручники. «Інтерфейси Java». , Підручники, 31 жовтня 2017. Доступно тут 

Надано зображення:

1.'CPT-OOP-legacy-bike-bike 'Автор Плуке - Власна робота, (Public Domain) через Commons Wikimedia