Junior — Middle
Jakie zmiany należy wprowadzić w definicji klasy, aby zapewnić możliwość korzystania z polimorfizmu?
sobes.tech AI
Odpowiedź od AI
Aby zapewnić możliwość korzystania z polimorfizmu w Java, należy:
- Uczynić metody, które mają być nadpisywane w podklasach, niestatycznymi i niefinalnymi.
- Używać słowa kluczowego
overridew podklasach do nadpisywania metod klasy bazowej. - W klasie bazowej metody powinny być zadeklarowane jako
publiclubprotected(aby podklasy mogły je nadpisywać).
Przykład:
class Animal {
public void sound() {
System.out.println("Jakiś dźwięk");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Szczekanie");
}
}
// Użycie polimorfizmu
Animal animal = new Dog();
animal.sound(); // Wypisze "Szczekanie"
W związku z tym, aby obsługiwać polimorfizm, metody muszą być wirtualne (w Java, wszystkie metody niestatyczne są domyślnie wirtualne). Kluczowe jest, aby nie czynić metod static lub final.