Dedičnosť tried a rozhraní: extends

Pomocou kľúčového slova "extends" môžeme od existujúcej triedy odvodiť novú triedu. Nová trieda dedí všetky jej členské premenné a metódy, a môže pridať vlastné.

Kľúčové slovo "final", ak je uvedené pred názvom triedy, zakazuje vytváranie podtried. Ak je teda existujúca trieda označená ako "final", nemôžeme z nej odvodiť podtriedu.

Aby sme mohli od nejakej triedy odvodiť, musíme ju vidieť, a musíme vidieť aspoň jeden jej konštruktor. Čiže ak je daná trieda v inom balíku, musí byť "public". (Ak daná trieda nemá deklarovaný konštruktor, potom má implicitný konštruktor, ktorý je "public".)

class Lopta {
  int velkost;
}

class FarebnaLopta extends Lopta {
  Color farba;
}

Pomocou kľúčového slova "extends" môžeme od existujúceho rozhrania, alebo viacerých existujúcich rozhraní, odvodiť nové rozhranie. Nové rozhranie dedí všetky metódy, a môže pridať vlastné.

interface VodorovnyPohyb {
  void posunVodorovneNa(int x);
}

interface ZvislyPohyb {
  void posunZvisloNa(int y);
}

interface VolnyPohyb extends VodorovnyPohyb, ZvislyPohyb {
  void posunNa(int x, int y);
}

viliam@bur.sk