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
overridek přepsání metod základní třídy. - V základní třídě by měly být metody deklarovány jako
publicneboprotected(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.