Рецоммендед, 2024

Избор Уредника

Разлика између проширује и имплементира кључне речи у Јави

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

Цомпарисон Цхартс

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

Дефиниција кључне речи ектендс

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

 цласс А {Стринг с; А (Стринг с1) {с = с1; } // дисплаи стринг воид дисплаи () {Систем.оут.принтлн (+ с); }} класа Б проширује А {Стринг и; Б (Стринг с1, Стринг и1) {супер (с1); и = и1; } воид диспали () {супер.диспали (); / * дисплаи () класе А позван. * / Систем.оут.принтлн (+ и); }} цласс Оверриде {публиц статиц воид маин (Стринг аргс []) {Б об = ново Б (Технологија, Разлике); об.дисплаи (); / * приказ класе Б позван * /}} / * оут пут * / Тецх Дифференцес 

У горњем коду, можете приметити да је класа Б проширена класа А и да је заменила приказ дисплеја () дефинисан у класи А. На сличан начин интерфејс може проширити више од једног интерфејса у исто време. Пошто интерфејс не мора да примењује ниједан метод проширеног интерфејса, дозвољено му је да наслеђује више интерфејса у исто време.

Дефиниција кључне речи имплементације

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

 низови интерфејса {воид дисплаи (Стринг с); } интегер интегер {воид схов (инт и); } цласс Демо имплементира стрингове, интегер {воид схов (инт и) {Систем.Оут.Принтлн ("целобројна вредност:" + и); } воид дисплаи (Стринг с) {Систем.Оут.Принтлн ("стринг валуе:" + с); }} класа Демо_маин {публиц статиц воид маин (стринг аргс []) {Демо д = нев Демо (); д.дисплаи ("ТецхДифференцес"); д.схов (2); }} / * оутпут * / ТецхДифференцес 2 

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

Кључне разлике између продужетака и уређаја

  1. Класа може да наследи другу класу, или интерфејс наслеђује друге интерфејсе користећи кључну реч која се шири док класа може да имплементира интерфејсе користећи кључну реч имплементира.
  2. Подкласа која проширује надкласу може или не мора надјачати све методе у надкласи. С друге стране, класа која имплементира интерфејс мора дефинисати / имплементирати све методе тог интерфејса.
  3. Класа може имплементирати било који број сучеља у исто вријеме. С друге стране, класа може проширити само једну супер класу.
  4. Интерфејс може проширити било који број интерфејса, али интерфејс никада не може да примени било који други интерфејс јер имплементациона средства дефинишу методе и интерфејс увек имају апстрактне методе, тако да интерфејс никада не може да примени други интерфејс.

Закључак:

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

Top