Junior — Middle
Milliseid muudatusi tuleb klassi määratlust muuta, et tagada selle võimalus kasutada polümorfismi?
sobes.tech AI
Vastus AI-lt
Java-s võimaluse polümorfismi kasutamiseks on vajalik:
- Meetodid, mida eeldatakse alamsklastes üle kirjutada, ei tohi olla staatilised ega final.
- Alamsklastes kasutada võtmesõna
override, et üle kirjutada baasklassi meetodid. - Baasklassis peavad meetodid olema deklareeritud kui
publicvõiprotected(et alamsklasid saaksid neid üle kirjutada).
Näide:
class Animal {
public void sound() {
System.out.println("Mõni hääl");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Haugumine");
}
}
// Polümorfismi kasutamine
Animal animal = new Dog();
animal.sound(); // Kuvab "Haugumine"
Seega, polümorfismi toetamiseks peavad meetodid olema virtuaalsed (Java-s on kõik mitte-staatilised meetodid vaikimisi virtuaalsed). Peamine on mitte teha neid static või final.