Sobes.tech
Junior — Middle

Milyen változtatásokat kell végrehajtani az osztálydefinícióban, hogy biztosítsuk a polimorfizmus használatát?

sobes.tech MI

Válasz az MI-től

Annak érdekében, hogy biztosított legyen a polimorfizmus használata Java-ban:

  • A metódusokat, amelyeket felülírni szándékozik az alosztályokban, nem szabad statikusnak vagy véglegesnek (final) tenni.
  • Az alosztályokban a override kulcsszót kell használni az ősosztály metódusainak felülírására.
  • Az ősosztályban a metódusokat public vagy protected láthatósági szinten kell deklarálni (hogy az alosztályok felülírhassák őket).

Példa:

class Animal {
    public void sound() {
        System.out.println("Valamilyen hang");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Bark");
    }
}

// Polimorfizmus használata
Animal animal = new Dog();
animal.sound(); // Kiírja: "Bark"

Ezért a polimorfizmus támogatásához a metódusoknak virtuálisnak kell lenniük (Java-ban minden nem statikus metódus alapértelmezés szerint virtuális). A fő szabály, hogy ne tegyük őket static vagy final-ná.