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

Автор: Laura McKinney
Дата На Създаване: 2 Април 2021
Дата На Актуализиране: 14 Може 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Видео: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Съдържание


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

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

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


Определение за клас

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

class class_name {/ * polja ... методи * /}

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

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


Дефиниция на интерфейс

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

интерфейс_име на интерфейс {тип var_name = стойност; тип метод1 (списък с параметри); тип метод2 (списък с параметри); , , }

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

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

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

  1. Един клас може да бъде създаден чрез създаване на обекти. Интерфейсът никога не е инстанциран, тъй като методите, декларирани в даден интерфейс, са абстрактни и не извършват никакви действия, така че не се използва инстанциране на всеки интерфейс.
  2. Класът се декларира с помощта на клас ключови думи. По същия начин се създава интерфейс с помощта на интерфейс за ключови думи.
  3. Членовете на клас могат да имат спецификатор за достъп като публичен, частен, защитен. Но членовете на даден интерфейс винаги са публични, тъй като трябва да бъдат достъпни от класовете, които ги прилагат.
  4. Методите вътре в клас са дефинирани за извършване на действие върху полетата, декларирани в класа. Тъй като в декларацията на полета липсва интерфейс, методите вътре в интерфейса са чисто абстрактни.
  5. Класът може да реализира произволен брой интерфейси, но може да разширява само един супер клас. Интерфейсът може да разширява произволен брой интерфейси, но не може да реализира всеки интерфейс.
  6. Класът има конструктори, дефинирани вътре в него, за да получи променливата инициализирана. Но интерфейсът няма конструктори, тъй като няма полета, които да се инициализират. Полетата на интерфейса се инициализират само в момента на декларирането им.

Заключение:

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