Објасните принцип динамичког рутирања позива метода у објектно оријентисаном програмирању.
sobes.tech АИ
Одговор од АИ
Dinamičko usmeravanje poziva metoda (dynamic dispatch) je mehanizam u objektno-orijentisanom programiranju koji omogućava da se odredi koja će implementacija metode biti pozvana, na osnovu stvarnog tipa objekta tokom izvršavanja, a ne tokom kompajliranja.
U Javi, ovo se postiže putem virtuelnih metoda: ako je metoda deklarisana u osnovnoj klasi i prepisana u podklasi, poziv putem reference na osnovni tip će pozvati verziju metode koja odgovara stvarnom tipu objekta.
Primer:
class Animal {
void sound() {
System.out.println("Neki zvuk");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Lajanje");
}
}
Animal a = new Dog();
a.sound(); // Ispisaće "Lajanje", iako je tip promenljive Animal
Na ovaj način, dinamičko usmeravanje omogućava implementaciju polimorfizma, čineći ponašanje programa fleksibilnim i proširivim.
Iza kulisa, JVM koristi tabele virtuelnih metoda (vtable) za brzo određivanje odgovarajuće implementacije tokom izvršavanja.