Sobes.tech
Junior — Middle

Jaké změny je třeba provést v definici třídy, aby bylo možné využívat polymorfismus?

sobes.tech AI

Odpověď od AI

Aby bylo možné v Java používat polymorfismus, je třeba:

  • Metody, které mají být přepsány v podtřídách, by neměly být statické ani final.
  • V podtřídách používat klíčové slovo override k přepsání metod základní třídy.
  • V základní třídě by měly být metody deklarovány jako public nebo protected (aby je podtřídy mohly přepsat).

Příklad:

class Animal {
    public void sound() {
        System.out.println("Nějaký zvuk");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Štěkání");
    }
}

// Použití polymorfismu
Animal animal = new Dog();
animal.sound(); // Vytiskne "Štěkání"

Proto, aby bylo možné podporovat polymorfismus, musí být metody virtuální (v Java jsou všechny nestatické metody ve výchozím nastavení virtuální). Hlavní je, aby metody nebyly static nebo final.