Obsah

Dědičnost (Inheritance)

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.


Základní terminologie


Hlavní výhody dědičnosti


Jak dědičnost funguje v praxi

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()

Přepsání metody (Overriding)

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“.


Omezení a pravidla


Příklad (Java)

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í.