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

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

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

ЗМІСТ

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

Що таке клас?

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

Клас містить властивості та методи. Учень може мати властивості, такі як ім'я, сорт, номер індексу. Учень може мати такі методи, як читання, ходьба, навчання. Клас створюється з необхідними властивостями та методами.

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

class class_name

// властивості

// методи

Мови програмування, такі як C # і Java, дотримуються подібного синтаксису для створення об'єкта за допомогою класу. Припустимо, що назва класу - Student.

Student s1 = новий Student ();

Цей s1 є об'єктом. "Нове" ключове слово використовується для розподілу пам'яті для властивостей. Клас також має конструктор для ініціалізації властивостей або змінних.

Учасники класу, такі як властивості та методи, мають модифікатори доступу. Специфікатори доступу описують доступність та видимість цих членів для інших класів. Учасники класу можуть мати специфікатори доступу, такі як громадські, приватні та захищені. Громадські члени мають доступ до інших класів. Приватні члени доступні лише для класу. Захищені учасники доступні в класі та відповідних підкласах.

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

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

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

Інтерфейси містять лише декларацію методів. Не існує методу реалізації. Також інтерфейси не можна використовувати для створення об'єктів. Вони використовуються для підтримки декількох спадок і для захисту коду.

Синтаксис інтерфейсу полягає в наступному. В інтерфейсі використовується ключове слово "інтерфейс".

ім'я інтерфейсу_файлу

тип методу1 (параметр_ список);

тип методу2 (параметр_ список);

Відповідно до вище, інтерфейси мають лише декларацію. Визначення немає. Отже, інтерфейси не можуть створювати об'єкти. Це лише дає абстрактне уявлення про те, що таке інтерфейс. Методи, оголошені в інтерфейсі, можуть бути реалізовані одним або багатьма класами. Клас використовує ключове слово "реалізувати" для реалізації інтерфейсу. Нижче див. Приклад, написаний за допомогою Java.

Рисунок 01: Програма з використанням інтерфейсів

Відповідно до вищезгаданої програми, A і B - це інтерфейси. Інтерфейс A має метод оголошення, який є сумою (). Інтерфейс B має декларацію методу sub (). Клас C реалізує обидва інтерфейси, які є A і B. Отже, клас C визначає методи sum () та sub (). Після створення об'єкта типу C можна викликати обидва методи sum () та sub ().

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

Які подібності між класом та інтерфейсом?

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

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

Клас проти інтерфейсу

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

Підсумок - Клас проти інтерфейсу

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

Завантажте PDF Class vs Interface

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

Довідка:

1.tutorialspoint.com. "Об'єкти та класи Java"., Точка. Доступний тут 
2.navinreddy20. Інтерфейс у Java з прикладом, Java Автор Navin Reddy, 11 грудня 2012. Доступний тут