Ключова разлика – клас срещу интерфейс
Обектно-ориентираното програмиране (ООП) е често срещана парадигма в разработката на софтуер. Той помага да се внесат сценарии от реалния свят в програмирането с помощта на класове и обекти. Класът е план за създаване на обект. Програмистът може да създаде клас със свойства и методи. Ученик и учител са обекти. Създаването на обект е известно като инстанциране. OOP също използва интерфейси. Интерфейсите и класът може да изглеждат подобни, но имат разлика. Тази статия обсъжда разликата между клас и интерфейс. Ключовата разлика между клас и интерфейс е, че класът е референтен тип, който е план за инстанциране на обект, докато интерфейсът е референтен тип, който не може да се използва за инстанциране на обект.
Какво е клас?
В ООП всичко се разглежда като обект. Не е възможно да се създаде обект без клас. Класът е план за създаване на обект. Когато строи къща, архитектът чертае плана. Планът е подобен на клас. Къщата е подобна на обекта. Класът е планът за изграждане на обект. Обектът е това, което е създадено с помощта на класа.
Класът съдържа свойствата и методите. Студентът може да има свойства като име, оценка, номер на индекс. Ученикът може да има методи като четене, ходене, учене. Създава се клас с необходимите свойства и методи.
Синтаксисът за създаване на клас в много езици за програмиране е както следва. Създава се с помощта на ключовата дума class.
клас клас_име {
// свойства
//методи
}
Езиците за програмиране като C и Java следват подобен синтаксис за създаване на обект с помощта на клас. Да приемем, че името на класа е Student.
Студент s1=нов ученик ();
Този s1 е обектът. Ключовата дума „new“се използва за разпределяне на памет за свойствата. Класът също има конструктор за инициализиране на свойства или променливи.
Членовете на класа като свойства и методи имат модификатори за достъп. Спецификаторите за достъп описват достъпността и видимостта на тези членове за други класове. Членовете на класа могат да имат спецификатори за достъп като public, private и protected. Публичните членове са достъпни от други класове. Частните членове са достъпни само за класа. Защитените членове са достъпни в рамките на класа и съответните подкласове.
Какво е интерфейс?
Абстракцията е стълб на обектно-ориентираното програмиране. Целта е да се скрият подробностите за изпълнението и да се покаже функционалността на потребителя. Абстракцията се постига с помощта на абстрактни класове и интерфейси. Абстрактният метод няма реализация. Клас, който съдържа поне един абстрактен метод, се нарича абстрактен клас.
Когато има два абстрактни класа, методите, декларирани в тези класове, трябва да бъдат имплементирани. Нов клас се използва за прилагане на тези методи. Ако и двата класа имат един и същ метод, това може да причини проблем с неяснотата. Следователно езиците за програмиране като Java и C имат интерфейс.
Интерфейсите съдържат само декларацията на методите. Няма начин на изпълнение. Освен това интерфейсите не могат да се използват за създаване на обекти. Те се използват за поддържане на множество наследявания и за защита на кода.
Синтаксисът на интерфейса е както следва. Интерфейс използвайте ключовата дума „интерфейс“.
интерфейс интерфейс_име{
тип method1(параметър_списък);
тип method2(параметър_списък);
}
Съгласно горното, интерфейсите имат само декларация. Няма определение. Така че интерфейсите не могат да създават обекти. Той дава само абстрактен поглед върху интерфейса. Методите, декларирани в интерфейса, могат да бъдат реализирани от един или много класове. Класът използва ключовата дума „implement“, за да реализира интерфейс. Вижте по-долу пример, написан с помощта на Java.
Фигура 01: Програмиране с помощта на интерфейси
Съгласно горната програма, A и B са интерфейси. Интерфейс А има декларация на метод, който е sum(). Интерфейс B има декларация на метод sub(). Клас C имплементира и двата интерфейса, които са A и B. Следователно клас C дефинира методите sum() и sub(). След създаване на обект от тип C е възможно да се извикат и двата метода sum() и sub().
Методите, декларирани вътре в интерфейса, винаги трябва да бъдат публични, защото класовете за изпълнение ги дефинират. Един интерфейс може също да наследи от друг интерфейс.
Какви са приликите между клас и интерфейс?
- И двата са референтни типове.
- И двете се отнасят до обектно-ориентираното програмиране.
Каква е разликата между клас и интерфейс?
Клас срещу интерфейс |
|
Класът е референтен тип, който е план за създаване на обект. | Интерфейсът е референтен тип, който не може да бъде създаден. |
Създаване на обект | |
Клас се използва за инстанциране на обект. | Интерфейс не може да бъде инстанциран, защото методите не могат да извършат каквото и да е действие. |
Конструктор | |
Класът съдържа конструктор за инициализиране на променливите. | Интерфейсът не съдържа конструктор, защото едва ли има променливи за инициализиране. |
Ключова дума | |
Класът използва ключовата дума "клас". | Интерфейсът използва ключовата дума „интерфейс“. |
Определител за достъп | |
Членовете на класа могат да бъдат частни, публични и защитени. | Членовете на интерфейса трябва винаги да са публични, защото класовете за изпълнение ги дефинират. |
Резюме – Клас срещу интерфейс
Класовете и интерфейсите се използват широко в обектно-ориентираното програмиране. Разликата между клас и интерфейс е, че класът е референтен тип, който е план за инстанциране на обект, а интерфейсът е референтен тип, който не може да се използва за инстанциране на обект. Един клас може да реализира много интерфейси. Но може да разшири само един суперклас. In interface може да наследи много интерфейси, но не може да има реализация. И двете имат своето значение. Програмистът може да ги използва в зависимост от разработвания софтуер.
Изтеглете PDF Class vs Interface
Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели според бележката за цитиране. Моля, изтеглете PDF версия тук Разлика между клас и интерфейс