Vmesniki in dedovanje

Iz MaFiRaWiki

Glej:

Ta članek ali del članka je v delu. Veseli bomo, če ga boste dopolnili in popravili.

Kaj pomeni to opozorilo?

Definiciji

Vmesniki (Interface) so nekakšna nadgradnja abstraktnih razredov, oz. sistemi za medsebojno komuniciranje med razredi. So enostavni konstrukti, v katerih postopke in konstante samo najavimo. Ukazov ne smemo zapisati, saj postopke definiramo v razredih, ki te vmesnike implementirajo. Da dani razred implementira neki vmesnik povemo z uporabo ključne besede implements. Vsi razredi, ki želijo koristiti ukaze vmesnikov se morajo obvezati, da bodo implementirali vse postopke, ki jih predpišemo v vmesniku.

Dedovanje Pogosto želimo ustvariti nov razred na osnovi obstoječega, saj je pisanje istih ukazov precej neučinkovito - počasno, poleg tega pa se poveča možnost napak. Tak način izdelave razreda imenujemo dedovanje (inheritance), saj podeduje nov razred vse lastnosti obstoječega razreda. Poleg tega mu lahko dodamo nove ali spremenimo stare lastnosti (spremenljivke, metode...). Dedovanje omogoča izraz extends. Kadar želimo zgraditi nov razred na osnovi obstoječega, ga najavimo, zapišemo besedo extends in določimo ime razreda, na osnovi katerega bomo zgradili novega.

Uporaba vmesnika in dedovanja

V naslednjem zgledu smo iz osnovnega razreda Vozilo izpeljali nov razred Vozilo1. V njem uporabimo in določimo ukaze vmesnika ZnamkaVozila.

  1. class Vozilo{
  2. int st_koles;
  3. int dolz_vozila;
  4.  
  5. void hitrost(){
  6. System.out.println("20 km/h");
  7. }
  8. }

  1. public interface ZnamkaVozila{
  2. final String nemski="BMW";
  3. final String japonski="TOYOTA";
  4. final String italijanski="FIAT";
  5. void prikaziZnamko(String znamka);
  6. }

  1. class Vozilo1 extends Vozilo implements ZnamkaVozila{
  2. public void prikaziModel(String znamka){
  3. System.out.println(znamka);
  4. }
  5. public static void main(String args[]){
  6. Vozilo1 nasAvto = new Vozilo1();
  7. System.out.println(nasAvto.nemski);
  8. nasAvto.prikaziModel("B212");
  9. }
  10. }
Osebna orodja