Sobes.tech
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 override w podklasach do nadpisywania metod klasy bazowej.
  • W klasie bazowej metody powinny być zadeklarowane jako public lub protected (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.