Skirtumas tarp įdiegimų ir pratęsimų

Įgyvendina vs Pratęsia

Įdiegimai ir išplėtimai yra du raktiniai žodžiai, rasti „Java“ programavimo kalboje, suteikiantys galimybę papildomas funkcijas perkelti į naują klasę. Įgyvendinimo raktinis žodis yra aiškiai naudojamas sąsajai įgyvendinti, o pratęsimo raktinis žodis naudojamas paveldėjimui iš (super) klasės. Atminkite, kad paveldėjimo sąvokos ir sąsajos yra daugelyje kitų objektinio programavimo kalbų, tokių kaip C # ir VB.NET, tačiau jose pateikiamos skirtingos sintaksės ar raktiniai žodžiai toms sąvokoms taikyti. Šis straipsnis skirtas tik „Java“ apibrėžtiems raktiniams žodžiams įgyvendinti ir išplėsti.

Išplečia

Išplečiamas raktinis žodis naudojamas paveldėjimo koncepcijai įgyvendinti „Java“ programavimo kalboje. Paveldėjimas iš esmės suteikia galimybę pakartotinai naudoti kodą, nes leidžia naujai apibrėžtai klasei išplėsti esamos klasės savybes ir elgesį. Kai naujas poklasis (arba išvestinė klasė) išplečia superklasę (arba pagrindinę klasę), tai poklasis paveldės visus superklasės atributus ir metodus. Poklasis gali pasirinktinai nepaisyti elgesio (suteikti metodams naujų ar išplėstų funkcijų), paveldėtų iš tėvų klasės. Poklasis negali išplėsti kelių „Java“ super klasių. Todėl negalite naudoti pratęsimų, kad paveldėtumėte kelis kartus. Norėdami paveldėti kelis kartus, turite naudoti sąsajas, kaip paaiškinta toliau.

Padargai

Įdiegiamas raktinis žodis „Java“ programavimo kalba yra naudojamas sąsajai įgyvendinti klasėje. „Java“ sąsaja yra abstraktus tipas, naudojamas nurodyti sutartį, kurią turėtų įgyvendinti klasės, įgyvendinančios tą sąsają. Paprastai sąsajoje bus tik metodo parašai ir nuolatinės deklaracijos. Bet kuri sąsaja, įgyvendinanti tam tikrą sąsają, turėtų įgyvendinti visus sąsajoje apibrėžtus metodus arba turėtų būti paskelbta abstrakčia klase. „Java“ objekto nuorodos tipas gali būti apibrėžtas kaip sąsajos tipas. Bet tas objektas neturi būti niekinis arba turėtų būti klasės objektas, įgyvendinantis tą konkrečią sąsają. Naudodami „Java“ raktinį žodį „Įgyvendina“, galite įdiegti kelias sąsajas į vieną klasę. Sąsaja negali įgyvendinti kitos sąsajos. Tačiau sąsaja gali pratęsti klasę.

Skirtumas tarp įdiegimų ir pratęsimų

Nors „Įgyvendinimai“ ir „Pratęsimai“ yra du raktiniai žodžiai, užtikrinantys „Java“ programavimo kalbos klasės požymių ir elgesio paveldėjimo mechanizmą, jie naudojami dviem skirtingais tikslais. Įgyvendinimo raktinis žodis naudojamas klasei įgyvendinti tam tikrą sąsają, o pratęsti raktinį žodį naudojamas poklasis, kad jis išplėstų iš superklasės. Kai klasė įgyvendina sąsają, ta klasė turi įgyvendinti visus sąsajoje apibrėžtus metodus, tačiau kai poklasis išplečia superklasę, ji gali nepaisyti metodų, įtrauktų į pagrindinę klasę. Galiausiai, dar vienas esminis skirtumas tarp Įgyvendinimų ir Pratęsimų yra tas, kad klasė gali įgyvendinti kelias sąsajas, tačiau ji gali būti išplėsta tik iš vienos „Java“ super klasės. Apskritai manoma, kad padargų (sąsajų) naudojimas yra palankesnis, palyginti su pratęsimų naudojimu (paveldėjimas), dėl kelių priežasčių, tokių kaip didesnis lankstumas ir galimybė sumažinti susiejimą. Todėl praktikoje pirmenybė teikiama programavimui į sąsają, o ne išplėsti iš bazinių klasių.