Sobes.tech
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 public või protected (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.