Объектно-ориентированное программирование (ООП) является распространенной парадигмой в разработке программного обеспечения. Это помогает привнести реальные сценарии в программирование с использованием классов и объектов. Класс - это план создания объекта. Программист может создать класс со свойствами и методами. Студент и учитель являются объектами. Создание объекта называется конкретизации. ООП также использует интерфейсы. Интерфейсы и классы могут показаться похожими, но они имеют разницу. В этой статье обсуждается разница между классом и интерфейсом. ключевое отличие между классом и интерфейсом является то, что класс является ссылочным типом, который является планом для создания экземпляра объекта, в то время как интерфейс является ссылочным типом, который не может использоваться для создания объекта.
1. Обзор и основные отличия
2. Что такое класс
3. Что такое интерфейс
4. Сходство между классом и интерфейсом
5. Сравнение бок о бок - класс против интерфейса в табличной форме
6. Резюме
В ООП все рассматривается как объект. Невозможно создать объект без класса. Класс - это план создания объекта. При строительстве дома архитектор рисует план. План похож на класс. Дом похож на объект. Класс - это план построения объекта. Объект - это то, что создано с использованием класса.
Класс содержит свойства и методы. Студент может иметь такие свойства, как имя, оценка, индекс. У студента могут быть такие методы, как чтение, ходьба, учеба. Класс создается с необходимыми свойствами и методами.
Синтаксис для создания класса во многих языках программирования следующий. Он создан с использованием ключевого слова class.
class class_name
// свойства
// методы
Языки программирования, такие как C # и Java, используют сходный синтаксис для создания объекта с использованием класса. Предположим, что имя класса ученик.
Студент s1 = новый студент ();
Этот s1 является объектом. Ключевое слово «new» используется для выделения памяти для свойств. Класс также имеет конструктор для инициализации свойств или переменных.
Члены класса, такие как свойства и методы, имеют модификаторы доступа. Спецификаторы доступа описывают доступность и видимость этих членов для других классов. Члены класса могут иметь спецификаторы доступа, такие как public, private и protected. Публичные участники доступны для других классов. Частные участники доступны только для класса. Защищенные члены доступны в классе и соответствующих подклассах.
Абстракция - это основа объектно-ориентированного программирования. Это скрыть детали реализации и показать функциональность пользователю. Абстракция достигается с помощью абстрактных классов и интерфейсов. Абстрактный метод не имеет реализации. Класс, который содержит хотя бы один абстрактный метод, называется абстрактным классом.
Когда есть два абстрактных класса, методы, объявленные в этих классах, должны быть реализованы. Новый класс используется для реализации этих методов. Если оба класса имеют один и тот же метод, это может вызвать проблему неоднозначности. Поэтому языки программирования, такие как Java и C #, имеют интерфейс.
Интерфейсы содержат только объявление методов. Нет способа реализации. Кроме того, интерфейсы не могут быть использованы для создания объектов. Они используются для поддержки множественного наследования и для защиты кода.
Синтаксис интерфейса выглядит следующим образом. Интерфейс использует ключевое слово «интерфейс».
interface interface_name
type method1 (параметр_list);
type method2 (параметр_list);
В соответствии с вышеизложенным, интерфейсы имеют только объявление. Там нет определения. Таким образом, интерфейсы не могут создавать экземпляры объектов. Это только дает абстрактное представление о том, что интерфейс. Методы, объявленные в интерфейсе, могут быть реализованы одним или несколькими классами. Класс использует ключевое слово «реализовать» для реализации интерфейса. Ниже приведен пример, написанный на Java.
Рисунок 01: Программа с использованием интерфейсов
Согласно вышеупомянутой программе A и B являются интерфейсами. Интерфейс A имеет объявление метода, которое является sum (). Интерфейс B имеет объявление метода sub (). Класс C реализует оба интерфейса - A и B. Поэтому класс C определяет методы sum () и sub (). После создания объекта типа C можно вызвать оба метода sum () и sub ()..
Методы, объявленные внутри интерфейса, всегда должны быть открытыми, потому что реализующие классы определяют их. Интерфейс также может наследоваться от другого интерфейса..
Класс против интерфейса | |
Класс - это ссылочный тип, который является планом для создания объекта.. | Интерфейс является ссылочным типом, который не может быть создан. |
Объектная реализация | |
Класс используется для создания объекта. | Интерфейс не может быть создан, потому что методы не могут выполнить какое-либо действие. |
Конструктор | |
Класс, содержащий конструктор, для инициализации переменных. | Интерфейс не содержит конструктора, потому что они едва ли являются переменными для инициализации. |
Ключевое слово | |
Класс использует ключевое слово «класс». | Интерфейс использует ключевое слово «интерфейс». |
Спецификатор доступа | |
Члены класса могут быть частными, публичными и защищенными. | Члены интерфейса должны быть всегда публичными, потому что реализующие классы определяют их. |
Классы и интерфейсы широко используются в объектно-ориентированном программировании. Различие между классом и интерфейсом состоит в том, что класс является ссылочным типом, который является образцом для создания экземпляра объекта, а интерфейс является ссылочным типом, который не может использоваться для создания экземпляра объекта. Класс может реализовывать много интерфейсов. Но это может расширить только один суперкласс. В интерфейсе может наследоваться много интерфейсов, но не может быть реализации. Оба имеют свою важность. Программист может использовать их в соответствии с разработкой программного обеспечения.
Вы можете скачать PDF версию этой статьи и использовать ее в автономном режиме, как указано в примечании. Пожалуйста, загрузите PDF версию здесь Разница между классом и интерфейсом
1.tutorialspoint.com. «Объект Java и классы.», The Point. Доступна здесь
2.navinreddy20. Интерфейс в Java с примером, Java По Navin Reddy, 11 декабря 2012 года. Доступно здесь