Izvedbe v primerjavi z razširitvami
Izvedbe in razširitve so dve ključni besedi, ki jih najdemo v programskem jeziku Java, ki omogočata prenos dodane funkcionalnosti v nov razred. Ključna beseda Implements se izrecno uporablja za izvajanje vmesnika, medtem ko se ključna beseda Extends uporablja za podedovanje iz (super) razreda. Upoštevajte, da sta koncepta dedovanja in vmesnikov prisotna v večini drugih objektno usmerjenih programskih jezikov, kot sta C # in VB.NET, vendar ponujajo drugačno skladnjo ali ključne besede za uporabo teh konceptov. Ta članek se osredotoča samo na izvedbe in razširitve ključnih besed, opredeljenih v Javi.
Podaljša
Ključna beseda extends se uporablja za izvajanje koncepta dedovanja v programskem jeziku Java. Dedovanje v bistvu omogoča ponovno uporabo kode, tako da omogoča razširitev lastnosti in obnašanja 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 nove ali razširjene funkcionalnosti metod), podedovane iz nadrejenega razreda. Podrazred ne more razširiti več super razredov na Javi. Zato razširitev ne morete uporabiti za večkratno dedovanje. Za večkratno dedovanje morate uporabiti vmesnike, kot je razloženo spodaj.
Izvajalci
Ključna beseda implementacija v programskem jeziku Java se uporablja za izvajanje vmesnika v razredu. Vmesnik v Javi je abstraktni tip, ki se uporablja za določitev pogodbe, ki naj bi jo izvajali razredi, ki izvajajo ta vmesnik. Običajno vmesnik vsebuje samo podpise metod in konstantne deklaracije. Vsak vmesnik, ki izvaja določen vmesnik, bi moral izvajati vse metode, opredeljene v vmesniku, ali jih je treba razglasiti kot abstraktni razred. V Javi lahko vrsto referenčnega predmeta določimo kot vrsto vmesnika. Toda ta objekt mora biti bodisi ničen, bodisi mora imeti predmet razreda, ki izvaja ta določen vmesnik. S ključno besedo 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 and Extends dve ključni besedi, ki zagotavljata mehanizem za podedovanje atributov in vedenja v razredu v programskem jeziku Java, se uporabljajo za dva različna namena. Ključna beseda Implements se uporablja za razred za izvajanje določenega vmesnika, medtem ko se ključna beseda Extends uporablja za podrazred, ki se razširi iz super razreda. Ko razred izvaja vmesnik, mora ta razred implementirati vse metode, opredeljene v vmesniku, ko pa podrazred razširi super razred, lahko ali ne more preglasiti metod, vključenih v nadrejeni razred. Končno je še ena ključna razlika med implementacijami in razširitvami ta, da razred lahko izvaja več vmesnikov, vendar se lahko razširi le iz enega super razreda na Javi. Na splošno velja, da je uporaba implementacij (vmesnikov) bolj ugodna v primerjavi z uporabo razširitev (dedovanje) iz več razlogov, kot sta večja fleksibilnost in možnost zmanjšanja sklopke. Zato je v praksi zaželeno programiranje na vmesnik pred razširitvijo iz osnovnih razredov.