Sobes.tech
Junior — Middle

Lze říci, že dědičnost přispívá k realizaci polymorfismu v objektově orientovaném programování?

sobes.tech AI

Odpověď od AI

Ano, dědičnost je jedním z klíčových mechanismů, které přispívají k implementaci polymorfismu v objektově orientovaném programování. Polymorfismus umožňuje, aby objekty různých tříd byly zpracovávány prostřednictvím společného rozhraní, a dědičnost umožňuje vytváření hierarchií tříd, kde podtřídy mohou přepisovat metody základní třídy.

Například, pokud existuje základní třída Zvíře s metodou vydatZvuk(), a podtřídy Pes a Kočka přepisují tuto metodu, pak lze s objekty těchto tříd pracovat prostřednictvím odkazu na základní třídu a volat metodu vydatZvuk(), čímž získáme různé chování:

class Zvíře {
    void vydatZvuk() {
        System.out.println("Nějaký zvuk");
    }
}

class Pes extends Zvíře {
    @Override
    void vydatZvuk() {
        System.out.println("štěkání");
    }
}

class Kočka extends Zvíře {
    @Override
    void vydatZvuk() {
        System.out.println("mňau");
    }
}

// Použití
Zvíře z = new Pes();
z.vydatZvuk(); // Vytiskne "štěkání"