Dědičnost definuje vztah typu „je“ (is-a). Pokud třída Pes dědí od třídy Zvíře, pak platí, že „Pes je Zvíře“. Tento mechanismus umožňuje programátorům psát kód jen jednou a následně jej rozšiřovat, místo aby jej znovu kopírovali.
Vozidlo).Auto, Motorka).pohniSe()) napíšete jednou do rodičovské třídy a všechny tisíce potomků je budou umět automaticky také.Tlacitko i TextovePole dědí od obecného Prvku).
Představme si hierarchii zvířat. Třída Zvíře definuje atribut jmeno a metodu spi().
| Třída | Má k dispozici | Vlastní unikátní prvek |
|---|---|---|
| Zvíře (Rodič) | jmeno, spi() | (není) |
| Pes (Potomek) | jmeno, spi() | metodu stekej() |
| Pták (Potomek) | jmeno, spi() | metodu let() |
Potomek může metodu, kterou zdědil, upravit tak, aby mu lépe vyhovovala. Tomu se říká Overriding. Například obě zvířata dědí metodu vydejZvuk(), ale Pes ji přepíše na „Haf“, zatímco Kočka na „Mňau“.
super (nebo base). Často se používá v konstruktorech.class Vozidlo { void trub() { System.out.println("Túúúút!"); } } class Auto extends Vozidlo { int pocetDveri = 5; } // Použití Auto mojeAuto = new Auto(); mojeAuto.trub(); // Zděděno od Vozidla System.out.println(mojeAuto.pocetDveri); // Vlastní atribut Auta
Související pojmy: OOP, Class, Instance, Polymorfismus, Konstruktor, Abstrakce, Přetěžování.