ZSBD-2st-1.2-lab9.tresc-1.3-Slajd10
Dynamiczne wiązanie metod
Tym co stanowi o sile modelu obiektowego jest dynamiczne wiązanie metod. W praktyce znaczy to, że jeżeli aktywujemy metodę poprzez zmienną nadtypu, to zostanie aktywowana metoda zaimplementowana w ciele typu obiektu, który faktycznie został do tej zmiennej przypisany. Przykładowo, jeżeli do zmiennej typu FIGURA zostanie przypisany obiekt typu KWADRAT, a następnie poprzez tą zmienną zostanie aktywowana metoda POLE, to faktycznie zostanie aktywowana metoda POLE zaimplementowana w typie KWADRAT. Powyższą dyskusję ilustrują przykłady pokazane na slajdzie. Przykład(1) pokazuje dynamiczne wiązanie metod w jeżyku PL/SQL. Do zmiennych KW i KO typu FIGURA przypisywane są obiekty typu KWADRAT i KOLO. Następnie, poprzez te zmienne, aktywowane są metody POLE, a ich wyniki są wyświetlane na konsoli. Jak łatwo zauważyć, aktywowanie metody POLE poprzez zmienną przechowującą kwadrat o boku 10, powoduje wykonanie kodu obliczającego pole kwadratu (10*10=100). Z kolei aktywowanie metody POLE poprzez zmienną przechowującą koło o promieniu 6, powoduje wykonanie kodu obliczającego pole koła (3.14*6*6=113.04). Z analogicznym zjawiskiem mamy do czynienia podczas realizacji zapytania (2). W zapytaniu tym odczytywane są wszystkie obiekty z tabeli obiektowej FIGURY i dla każdego z tych obiektów aktywowana jest metoda POLE, a jej wynik zwracany jest w tabeli wynikowej zapytania. Jak łatwo zaważyć, podobnie jak poprzednio, wykonane zostały implementacje metody POLE charakterystyczne dla typu obiektu.