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
overridekulcsszót kell használni az ősosztály metódusainak felülírására. - Az ősosztályban a metódusokat
publicvagyprotectedlá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á.