Різниця між класом та інтерфейсом на Java

Автор: Laura McKinney
Дата Створення: 2 Квітень 2021
Дата Оновлення: 14 Травень 2024
Anonim
Выпуск 20. Абстрактные классы и интерфейсы. Разница
Відеоролик: Выпуск 20. Абстрактные классы и интерфейсы. Разница

Зміст


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

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняКласІнтерфейс
ОсновніКлас створений для створення об'єктів.Інтерфейс ніколи не може бути ініційований, оскільки методи не в змозі виконати жодної дії при виклику.
Ключове словокласінтерфейс
Специфікатор доступуЧлени класу можуть бути приватними, державними або захищеними.Члени інтерфейсу завжди публічні.
Методи Методи класу визначені для виконання певної дії.Методи в інтерфейсі суто абстрактні.
Впровадити / продовжитиКлас може реалізувати будь-яку кількість інтерфейсів і може розширювати лише один клас.Інтерфейс може розширювати кілька інтерфейсів, але не може реалізувати жоден інтерфейс.
Конструктор Клас може мати конструктори для ініціалізації змінних.Інтерфейс ніколи не може мати конструктор, оскільки навряд чи існує якась змінна для ініціалізації.


Визначення класу

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

клас class_name {/ * поля ... методи * /}

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

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


Визначення інтерфейсу

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

interface interface_name {type var_name = значення; тип методу1 (список параметрів); тип методу2 (список параметрів); . . }

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

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

Ключові відмінності між класом та інтерфейсом на Java

  1. Клас можна створити миттєво, створивши його об'єкти. Інтерфейс ніколи не інстанціюється, оскільки методи, оголошені всередині інтерфейсу, абстрактні і не виконують жодних дій, тому інстанціювати жоден інтерфейс не використовується.
  2. Клас оголошується за допомогою класу ключових слів. Таким же чином створюється інтерфейс за допомогою інтерфейсу ключових слів.
  3. Учасники класу можуть мати специфікатор доступу, наприклад, громадський, приватний, захищений. Але члени інтерфейсу завжди є загальнодоступними, оскільки до них мають бути доступні класи, що реалізують їх.
  4. Методи всередині класу визначені для виконання дії на полях, оголошених у класі. Оскільки інтерфейсу не вистачає в оголошенні полів, методи всередині інтерфейсу є чисто абстрактними.
  5. Клас може реалізовувати будь-яку кількість інтерфейсів, але може розширювати лише один суперклас. Інтерфейс може розширювати будь-яку кількість інтерфейсів, але не може реалізувати жоден інтерфейс.
  6. Клас має конструктори, визначені всередині нього, для отримання ініціалізації змінної. Але в інтерфейсі немає конструкторів, оскільки немає полів, які слід ініціалізувати. Поля інтерфейсу ініціалізуються лише під час їх декларування.

Висновок:

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