Разлика между клас и интерфейс

Ключова разлика - клас срещу интерфейс
 

Обектно-ориентираното програмиране (OOP) е често срещана парадигма в разработването на софтуер. Той помага да се приведат сценарии в реалния свят към програмирането, като се използват класове и обекти. Класът е план за създаване на обект. Програмистът може да създаде клас със свойства и методи. Ученик и учител са обекти. Създаването на обект е известно като инстанция. OOP също използва интерфейси. Интерфейсите и класа може да изглеждат сходни, но те имат разлика. Тази статия обсъжда разликата между клас и интерфейс. Най- ключова разлика между клас и интерфейс е това клас е референтен тип, който е план за създаване на обект, докато интерфейсът е референтен тип, който не може да се използва за създаване на обект.

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е клас
3. Какво е интерфейс
4. Прилики между клас и интерфейс
5. Паралелно сравнение - клас срещу интерфейс в таблична форма
6. Резюме

Какво е клас?

В OOP всичко се разглежда като обект. Не е възможно да се създаде обект без клас. Класът е план за създаване на обект. Когато изгражда къща, архитектът изготвя плана. Планът е подобен на клас. Къщата е подобна на обекта. Класът е планът за изграждане на обект. Обект е това, което се създава с помощта на класа.

Класът съдържа свойствата и методите. Студентът може да има свойства като име, степен, номер на индекса. Студентът може да има методи като четене, ходене, учене. Създава се клас с необходимите свойства и методи.

Синтаксисът за създаване на клас в много програмни езици е следният. Създава се с помощта на класа на ключовите думи.

class class_name

// Имоти

// методи

Езици за програмиране като C # и Java следват подобен синтаксис, за да създадат обект, използвайки клас. Да приемем, че името на класа е Student.

Student s1 = нов Студент ();

Този s1 е обектът. Ключовата дума „нова“ се използва за разпределяне на памет за свойствата. Класът също има конструктор за инициализиране на свойства или променливи.

Членовете на класа като свойства и методи имат модификатори за достъп. Спецификаторите за достъп описват достъпността и видимостта на тези членове към други класове. Членовете на класа могат да имат спецификатори за достъп като обществени, частни и защитени. Публичните членове са достъпни от други класове. Частните членове са достъпни само за класа. Защитените членове са достъпни в рамките на класа и съответните подкласове.

Какво е интерфейс?

Абстракцията е стълб на обектно ориентираното програмиране. То е да се скрият подробностите за внедряването и да се покаже функционалността на потребителя. Абстракция се постига с помощта на абстрактни класове и интерфейси. Абстрактният метод няма изпълнение. Клас, който съдържа поне един абстрактен метод, се нарича абстрактен клас.

Когато има два абстрактни класа, методите, декларирани в тези класове, трябва да бъдат приложени. Нов клас се използва за прилагане на тези методи. Ако и двата класа имаха един и същ метод, това може да причини проблем с неяснотата. Следователно езиците за програмиране като Java и C # имат интерфейс.

Интерфейсите съдържат само декларирането на методи. Няма метод за изпълнение. Също така интерфейсите не могат да се използват за създаване на обекти. Те се използват за поддържане на множество наследства и за осигуряване на кода.

Синтаксисът на интерфейса е следният. Интерфейсът използва ключовата дума „интерфейс“.

интерфейсен име на интерфейс

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

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

Според горе, интерфейсите имат само декларацията. Няма определение. Така че интерфейсите не могат да създават обекти. Той дава само абстрактна представа за това какъв е интерфейсът. Методите, декларирани в интерфейса, могат да бъдат реализирани от един или много класове. Класът използва ключовата дума „внедряване“, за да приложи интерфейс. Вижте по-долу пример, написан с помощта на Java.

Фигура 01: Програма, използваща интерфейси

Според горната програма, A и B са интерфейси. Интерфейс А има декларация за метод, която е сумата (). Интерфейсът B има декларация за метод sub (). Клас C реализира и двата интерфейса, които са A и B. Следователно клас C определя както методите sum (), така и sub (). След създаването на обекта от тип C, е възможно да се извикат и двата метода sum () и sub ().

Методите, декларирани вътре в интерфейса, трябва винаги да са публични, защото класовете за изпълнение ги определят. Интерфейс може да наследи и от друг интерфейс.

Какви са приликите между клас и интерфейс?

  • И двете са референтни типове.
  • И двете се отнасят до обектно-ориентираното програмиране.

Каква е разликата между клас и интерфейс?

Клас срещу интерфейс

Класът е референтен тип, който е план за създаване на обект. Интерфейсът е референтен тип, който не може да бъде създаден.
 Обект на момента
Класът се използва за инстанциране на обект. Интерфейсът не може да бъде създаден, тъй като методите не могат да извършат никакви действия.
конструктор
Класът съдържа конструктор, за да инициализира променливите. Интерфейсът не съдържа конструктор, защото те едва ли имат променливи, които да се инициализират.
 Ключова дума
Класът използва ключовата дума „клас“. Интерфейсът използва ключовата дума „интерфейс“.
Спецификатор за достъп
Членовете на класа могат да бъдат частни, обществени и защитени. Членовете на интерфейса трябва да са винаги публични, защото класовете за изпълнение ги определят.

Обобщение - клас срещу интерфейс

Класовете и интерфейсите са широко използвани в обектно-ориентираното програмиране. Разликата между клас и интерфейс е, че клас е референтен тип, който е чертеж за създаване на обект, а интерфейсът е референтен тип, който не може да се използва за създаване на обект. Един клас може да реализира много интерфейси. Но може да разшири само един суперклас. В интерфейса могат да се наследят много интерфейси, но не може да има реализация. И двете имат своето значение. Програмистът може да ги използва според разработвания софтуер.

Изтеглете PDF Class срещу интерфейс

Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели, съгласно цитираната бележка. Моля, изтеглете PDF версия тук Разлика между клас и интерфейс

справка:

1.tutorialspoint.com. „Java обект и класове.“, The Point. Налични тук 
2.navinreddy20. Интерфейсът в Java с пример, Java От Navin Reddy, 11 декември 2012. Достъпно тук