Źródło: Arkusze CKE
Które z poniższych twierdzeń najlepiej charakteryzuje metodę wirtualną?
Warianty odpowiedzi
-
A
Metoda, która jest zawsze stosowana w konstruktorach danej klasy
-
B
Metoda, która działa wyłącznie dla statycznych pól danej klasy
-
C
Metoda, która może być wywoływana tylko przez klasę nadrzędną
-
D
Metoda, która może być przesłonięta w klasie dziedziczącej
Wyjaśnienie
Metoda wirtualna to funkcja zadeklarowana w klasie bazowej z myślą o tym, że klasy potomne będą mogły zmienić jej działanie.
Pozwala to na realizację polimorfizmu dynamicznego. Program w trakcie działania sam decyduje, którą wersję metody wywołać, patrząc na rzeczywisty typ obiektu.
Dzięki temu możesz napisać uniwersalny kod obsługujący klasę nadrzędną, a wywoła się konkretna logika nadpisana w podklasie.