|
Funkcje wirtualne
Rozważmy następującą sytuację: chcemy zrobić ZOO, w którym bedą przechowywane
różne zwierzaki. Oczywiście nie będziemy tworzyć osobnych zmiennych dla każdego
zwierzaka, zwłaszcza, jeśli nie wiemy ile ich ma być (bo liczba może się zmieniać).
Można użyć tablicy, jednak należy pamiętać, że może ona zawierać jedynie elementy
takiego samego typu. Naszczęście znamy już dziedziczenie, więc chyba nie ma
większego problemu. Tworzymy tablicę elementów typu Zwierzak (patrz poprzedni
rozdział) a ponieważ "Pies", "Kot", "Żółw" i "Małpa" dziedziczą z klasy "Zwierzak"
toteż do tablicy możemy wstawiać je wszystkie. +-----------+ +---------+ // Tu każdy zwierzak ma swoją metodę dajGlos() |Zwierzak | --+---> |Pies | +-----------+ | +---------+ // ale jeśli mamy tablicę: Zwierzak tab[xxx] | | | |dajGlos()| // czyli elemty typu zwierzak +-----------+ | +---------+ // to nie mamy im jak wydać polecenia dajGlos() | | +---------+ // klasa Zwierzak nie ma takiej metody +---> |Kot | | +---------+ | |dajGlos()| | +---------+ | | +---------+ +---> |Żółw | | +---------+ | |dajGlos()| | +---------+ | | +---------+ +---> |Małpa | +---------+ |dajGlos()| +---------+ |
Strony uczelniane: Str. Główna SerwisStudencki Poczta Sekret BSS-HOWTO Hasło Biblioteka Index stron |
I tu właśnie nadszedł czas na wprowadzenie metod wirtualnych. |