Implementira proti razširitvam
Implements in Extends sta dve ključni besedi, ki ju najdemo v programskem jeziku Java in zagotavljata sredstva za prenos dodane funkcionalnosti v nov razred. Ključna beseda Implements se uporablja eksplicitno za implementacijo vmesnika, medtem ko se ključna beseda Extends uporablja za dedovanje iz (super) razreda. Upoštevajte, da so koncepti dedovanja in vmesnikov 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 implementacije in razširitve ključnih besed, definiranih v Javi.
Podaljša
Ključna beseda Extends se uporablja za implementacijo koncepta dedovanja v programskem jeziku Java. Dedovanje v bistvu zagotavlja ponovno uporabo kode tako, da omogoča razširitev lastnosti in obnašanja obstoječega razreda z na novo definiranim razredom. Ko nov podrazred (ali izpeljani razred) razširi nadrazred (ali nadrejeni razred), bo ta podrazred podedoval vse atribute in metode nadrazreda. Podrazred lahko po želji preglasi vedenje (zagotovi novo ali razširjeno funkcionalnost metod), podedovano od nadrejenega razreda. Podrazred ne more razširiti več nadrazredov v Javi. Zato razširitev ne morete uporabiti za večkratno dedovanje. Če želite imeti večkratno dedovanje, morate uporabiti vmesnike, kot je razloženo spodaj.
Izvedbe
Ključna beseda Implements v programskem jeziku Java se uporablja za implementacijo vmesnika s strani razreda. Vmesnik v Javi je abstraktni tip, ki se uporablja za določanje pogodbe, ki naj bi jo implementirali razredi, ki implementirajo ta vmesnik. Običajno bo vmesnik vseboval le podpise metod in deklaracije konstant. Vsak vmesnik, ki izvaja določen vmesnik, mora izvajati vse metode, definirane v vmesniku, ali pa mora biti deklariran kot abstraktni razred. V Javi lahko tip sklicevanja na objekt definiramo kot tip vmesnika. Toda ta objekt mora biti nič ali pa mora vsebovati objekt razreda, ki izvaja ta določen vmesnik. Z uporabo ključne besede Implements v Javi lahko implementirate več vmesnikov v en razred. Vmesnik ne more izvajati drugega vmesnika. Vendar lahko vmesnik razširi razred.
Razlika med Implements in Extends
Čeprav sta Implements in Extends dve ključni besedi, ki zagotavljata mehanizem za dedovanje atributov in obnašanja razreda v programskem jeziku Java, se uporabljata za dva različna namena. Ključna beseda Implements se uporablja za razred za implementacijo določenega vmesnika, medtem ko se ključna beseda Extends uporablja za podrazred za razširitev nadrazreda. Ko razred implementira vmesnik, mora ta razred implementirati vse metode, definirane v vmesniku, ko pa podrazred razširi superrazred, lahko preglasi metode, vključene v nadrejeni razred, ali pa tudi ne. Nazadnje, druga ključna razlika med Implements in Extends je ta, da lahko razred implementira več vmesnikov, vendar se lahko razširi le iz enega nadrazreda v Javi. Na splošno se uporaba Implementov (vmesnikov) šteje za ugodnejšo v primerjavi z uporabo Extends (dedovanje) zaradi več razlogov, kot sta večja prilagodljivost in zmožnost minimiziranja spajanja. Zato ima v praksi programiranje na vmesniku prednost pred razširitvijo iz osnovnih razredov.