Рекомендуємо, 2022

Вибір Редакції

Різниця між розширює і реалізує ключові слова в Java

Ключові слова, що розширюються і реалізовуються, використовуються для успадкування особливостей вже існуючого батьківського блоку в новоствореному дочірньому блоці. Використовуючи ключове слово extends, новостворений клас (підклас) може успадкувати особливості існуючого класу (суперкласу). За допомогою реалізованого ключового слова новостворений клас може реалізувати всі методи інтерфейсу. Основна відмінність між розширеними та реалізованими ключовими словами полягає в тому, що клас розширює інший клас для успадкування всіх його членів, тоді як клас реалізує інтерфейс для успадкування всіх його методів і реалізації їх відповідно до вимог. Існують деякі інші відмінності між розширеннями ключових слів і інструментами, що обговорюються на діаграмі порівняння, показаній нижче.

Діаграми порівняння

Основа для порівнянняРозширюєтьсяІнвентар
ОсновнийКлючове слово extends використовується для створення підкласу з використанням особливостей суперкласу.Ключове слово "реалізує" використовується для реалізації інтерфейсу
МетодиКлючове слово extends може не перекривати всі методи суперкласу.Ключове слово "реалізує" має реалізувати всі методи реалізованого інтерфейсу.
КласКлас може розширювати тільки один суперклас.Клас може реалізовувати кілька інтерфейсів.
ІнтерфейсІнтерфейс може розширювати більше одного інтерфейсу.Інтерфейс не може реалізовувати інший інтерфейс.

Визначення ключового слова extends

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

 клас A {String s; A (String s1) {s = s1; } // відображення рядка void display () {System.out.println (+ s); }} клас B розширює A {String i; B (String s1, String i1) {супер (s1); i = i1; } void dispaly () {super.dispaly (); / * display () викликається класу A. * / System.out.println (+ i); }} клас Override {public static void main (String args []) {B ob = new B (Tech, Відмінності); ob.display (); / * відображення класу B викликається * /}} / * на виході * / Tech Differences 

У наведеному вище коді можна спостерігати, що клас B має розширений клас A і перекрив метод display (), визначений у класі A. Аналогічним чином інтерфейс може розширювати більше одного інтерфейсу за один раз. Як інтерфейс не повинен реалізовувати будь-який метод розширеного інтерфейсу, отже, дозволено успадковувати кілька інтерфейсів одночасно.

Визначення ключового слова "реалізує"

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

 інтерфейсні рядки {void display (String s); } integer integer {void show (int i); } клас Demo реалізує рядки, ціле число {void show (int i) {System.Out.Println ("ціле значення:" + i); } void display (String s) {System.Out.Println ("значення рядка:" + s); }} клас Demo_main {загальнодоступний статичний void main (рядок args []) {Demo d = new Demo (); d.display ("TechDifferences"); d.show (2); }} / * вихід * / TechDifferences 2 

Як і в наведеному вище коді, можна побачити, що демонстрація класу реалізує два рядки інтерфейсів і ціле число і реалізувала методи, оголошені в інтерфейсах display () і show ().

Основні відмінності між розширювальними і приладдями

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

Висновок:

Я завершу обговорення, кажучи, що впровадження інтерфейсу робить код більш гнучким, ніж розширення класу. Як це уникає обмеження успадкування тільки одного супер-класу в Java. Використовуючи ключове слово implements клас може успадковувати особливості більш ніж одного інтерфейсу.

Top