Izvaja v primerjavi z razširitvami
Implements in Extends sta dve ključni besedi, ki ju najdemo v programskem jeziku Java in ponuja način prenosa dodane funkcionalnosti v nov razred. Ključna beseda Implements se izrecno uporablja za izvajanje vmesnika, medtem ko se ključna beseda Extends uporablja za dedovanje iz (super) razreda. Upoštevajte, da so koncepti dedovanja in vmesniki prisotni v večini drugih objektno usmerjenih programskih jezikov, kot sta C # in VB. NET, vendar ponujajo drugačno sintakso ali ključne besede za uporabo teh konceptov. Ta članek se osredotoča samo na ključne besede Implements and Extends, opredeljene v Javi.
Razširja
Ključna beseda extends se uporablja za izvajanje koncepta dedovanja v programskem jeziku Java. Dedovanje v bistvu zagotavlja ponovno uporabo kode, tako da omogoča razširitev lastnosti in vedenja obstoječega razreda na novo definiran razred. Ko nov podrazred (ali izpeljani razred) razširi super razred (ali nadrejeni razred), bo podrazred podedoval vse atribute in metode super razreda. Podrazred lahko po želji preglasi vedenje (zagotavlja novo ali razširjeno funkcionalnost metod), podedovano od nadrejenega razreda. Podrazred ne more razširiti več super razredov v Javi. Zato razširitev ne morete uporabljati za večkratno dedovanje. Če želite večkratno dedovanje, morate uporabiti vmesnike, kot je razloženo spodaj.
Izvaja
Ključna beseda Implements v programskem jeziku Java se uporablja za izvajanje vmesnika s strani razreda. Vmesnik v Javi je abstraktna vrsta, ki se uporablja za določanje pogodbe, ki jo morajo izvajati razredi, ki ta vmesnik izvajajo. Običajno bo vmesnik vseboval samo podpise metod in konstantne deklaracije. Vsak vmesnik, ki izvaja določen vmesnik, mora izvajati vse metode, opredeljene v vmesniku, ali pa ga je treba razglasiti kot abstraktni razred. V Javi lahko vrsto reference na objekt definiramo kot vrsto vmesnika. Toda ta objekt mora biti null ali mora vsebovati objekt razreda, ki izvaja ta vmesnik. Z uporabo ključne besede Implements v Javi lahko v en razred implementirate več vmesnikov. Vmesnik ne more implementirati drugega vmesnika. Vendar lahko vmesnik razširi razred.
Razlika med izvedbami in razširitvami
Čeprav sta Implements in Extends dve ključni besedi, ki zagotavljata mehanizem za podedovanje atributov in vedenja razreda v programskem jeziku Java, se uporabljata za dva različna namena. Ključna beseda Implements se za razred uporablja za izvajanje določenega vmesnika, medtem ko se ključna beseda Extends uporablja za podrazred, ki se razširi iz super razreda. Ko razred razvije vmesnik, mora ta razred implementirati vse metode, definirane v vmesniku, ko pa podrazred razširi super razred, lahko preglasi ali ne metode nadrejenega razreda. Na koncu je še ena ključna razlika med Implements in Extends ta, da lahko razred izvaja več vmesnikov, vendar se lahko razširi le iz enega super razreda v Javi. Na splošno velja, da je uporaba izvedb (vmesnikov) ugodnejša v primerjavi z uporabo razširitev (dedovanje),iz več razlogov, kot sta večja prilagodljivost in zmožnost minimaliziranja spenjanja. Zato je v praksi programiranje vmesnika prednostno kot razširitev iz osnovnih razredov.