Разлика између класе и интерфејса у Јави

Аутор: Laura McKinney
Датум Стварања: 2 Април 2021
Ажурирати Датум: 14 Може 2024
Anonim
9. Programiranje - JAVA - ECLIPSE - Apstraktne klase i Interfejsi
Видео: 9. Programiranje - JAVA - ECLIPSE - Apstraktne klase i Interfejsi

Садржај


И класа и интерфејс се користе за креирање нових типова референци. Класа је збирка поља и метода која раде на пољима. Интерфејс има потпуно апстрактне методе, тј. Методе са никим. Интерфејс је синтактички сличан класи, али постоји велика разлика између класе и интерфејса који класа може бити инстанциран, али интерфејс никада не може бити инстанциран. Па научимо још неколико разлике између класе и интерфејса уз помоћ упоредног графикона приказаног доле.

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Закључак

Упоредни графикон

Основе за упоређивањеКласаИнтерфејс
ОсновниКлас је инстанциран за креирање објеката.Интерфејс се никада не може инстанцирати јер методе нису у стању да изврше ниједну радњу при позивању.
Кључна речкласаинтерфејс
Спецификатор приступаЧланови класе могу бити приватни, јавни или заштићени.Чланови интерфејса су увек јавни.
Методе Методе класе су дефинисане за извођење одређене радње.Методе у интерфејсу су чисто апстрактне.
Имплементација / продужавањеКласа може имплементирати било који број интерфејса и може проширити само једну класу.Интерфејс може проширити више интерфејса, али не може имплементирати ниједан интерфејс.
Конструктор Класа може имати конструкторе за иницијализацију варијабли.Сучеље никада не може имати конструктор јер скоро да нема варијабле за иницијализацију.


Дефиниција класе

Класа је најважнији аспект Јава програмирања без класа које не можете имплементирати јава програм. Класа ствара референтне типове и ови референтни типови се користе за креирање објеката. Разред има потпис и тело. Потпис класе садржи име и податке класе који говоре да ли је класа наследила другу класу. Тело класе има поља и методе које делују на тим пољима. Класа је креирана помоћу кључне речи класа. Омогућује нам како да пријавимо класу.

цласс цласс_наме {/ * поља ... методе * /}

Када се класа инстанцира, сваки креиран предмет садржи копију поља и метода с њима. Поља и чланови који су декларисани унутар класе могу бити статични или нестални. Вриједност статичких чланова је константна за сваки објект док се, не-статички чланови, сваки објект различито иницијализира у складу с његовим захтјевима.

Чланови класе имају спецификацију приступа који одлучују о видљивости и доступности чланова кориснику или подкласама. Специфичари приступа су јавни, приватни и заштићени. Класу може наследити друга класа користећи спецификатор приступа који ће одлучити о видљивости чланова преткласа (наслеђена класа) у подкласи (наследна класа). Тако класа испуњава концепт сакривања и енкапсулације података у објектно оријентисаном програмирању.


Дефиниција интерфејса

Интерфејс је такође међу референтним типовима дефинисаним у Јави. Важност интерфејса је да у Јави класа може наследити само једну класу. Како би избегли ово ограничење, Јава-ови дизајнери представили су концепт интерфејса. Интерфејс је синтактички сличан класи, али недостаје декларација поља и методе унутар интерфејса немају никакву имплементацију. Интерфејс се декларише помоћу кључне речи интерфејс. Погледајмо декларацију интерфејса.

интерфаце интерфаце_наме {типе вар_наме = вредност; тип типе1 (листа параметара); тип типе2 (листа параметара); . . }

Интерфејс не дефинише ниједну методу која је декларисана у њему јер нема поља у којима би могла да ради. Само зато што било која метода унутар интерфејса не врши ниједну радњу, интерфејс се никада не може инстанцирати. Ако интерфејс има било којег члана поља, он се мора иницијализирати у тренутку њихове декларације. Интерфејс никада не садржи ниједан конструктор јер му недостају чланови поља да би се иницијализирали. Дакле, интерфејс само дефинише шта класа мора да ради уместо тога.

Једном креирано сучеље може имплементирати било који број класа користећи кључну реч опрема. Али класе које имплементирају интерфејс морају дефинирати све методе унутар интерфејса. Интерфејс такође може да наследи други интерфејс користећи проширити кључна реч. Ако класа имплементира интерфејс који проширује други интерфејс. Тада класа мора дефинирати методе оба сучеља која се појављују у ланцу. Методе унутар интерфејса морају увек бити јавне, јер им морају приступити класе које их спроводе.

Кључне разлике између класе и интерфејса у Јави

  1. Класа се може инстанцирати креирањем њених објеката. Интерфејс се никада не инстанцира, јер су методе декларисане унутар интерфејса апстрактне и не изводе никакве радње, тако да нема употребе инстанцирања било ког интерфејса.
  2. Класа се декларише помоћу класе кључне речи. На исти начин се ствара интерфејс помоћу интерфејса за кључне речи.
  3. Чланови класе могу имати спецификатор приступа као што је јавни, приватни, заштићени. Али чланови интерфејса су увек јавни, јер им морају приступити класе које их спроводе.
  4. Методе унутар класе су дефиниране за извођење акције на пољима декларираним у класи. Како у декларацији недостаје сучеље, методе унутар интерфејса су чисто апстрактне.
  5. Класа може имплементирати било који број интерфејса, али може проширити само једну супер класу. Интерфејс може проширити било који број интерфејса, али не може имплементирати ниједан интерфејс.
  6. Класа има конструкторе дефиниране унутар ње како би се варијабла иницијализирала. Али, интерфејс нема конструктора јер не постоје поља која се могу иницијализирати. Поља сучеља се иницијализирају само у вријеме њихове декларације.

Закључак:

И класе и сучеља имају своју важност. Класа се користи када требамо дефинирати како ће се задатак обављати. Интерфејс се користи када морамо знати који задатак морамо учинити.