W językach C++ lub C# słowo kluczowe virtual można stosować do
W językach C++ lub C# słowo kluczowe virtual można stosować do
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: C
Uzasadnienie i szersze wyjaśnienie:
Słowo kluczowe virtual jest fundamentalnym elementem mechanizmu polimorfizmu w programowaniu obiektowym, szczególnie w językach C++ i C#. Jego głównym zadaniem jest umożliwienie nadpisywania (ang. overriding) metod klasy bazowej w klasach pochodnych. Gdy metoda w klasie bazowej jest oznaczona jako virtual, oznacza to, że wywołanie tej metody na rzecz obiektu będzie dynamicznie wiązane w czasie wykonania programu (tzw. late binding). System sam zdecyduje, którą wersję metody (z klasy bazowej czy z którejś z klas pochodnych) należy uruchomić, w zależności od rzeczywistego typu obiektu.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A. pól klasy: Pola (zmienne członkowskie) przechowują stan obiektu i nie mogą być wirtualne. Polimorfizm dotyczy zachowania (metod), a nie stanu (pól).
- B. konstruktorów: Konstruktory nie mogą być wirtualne, ponieważ są one wywoływane w momencie tworzenia obiektu o konkretnym, znanym typie. Mechanizm wirtualny ma sens dopiero wtedy, gdy obiekt już istnieje.
- D. funkcji zaprzyjaźnionych: Funkcje zaprzyjaźnione nie są składowymi klasy, więc nie uczestniczą w mechanizmie dziedziczenia i polimorfizmu w ten sam sposób co metody. Nie mogą być wirtualne.
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Dziedziczenie (Inheritance w OOP)Mechanizm programowania obiektowego pozwalający klasie pochodnej (podrzędnej) na przejęcie pól i metod z klasy bazowej (nadrzędnej) oraz ich rozszerzenie lub modyfikację.
- Konstruktor i DestruktorSpecjalne metody klasy: Konstruktor inicjalizuje stan nowo tworzonego obiektu, a Destruktor zwalnia zasoby przed jego usunięciem.
- Polimorfizm (Wielopostaciowość w OOP)Cecha programowania obiektowego pozwalająca na jednakowe traktowanie obiektów różnych klas pochodnych za pośrednictwem wspólnego interfejsu lub klasy bazowej z różną implementacją zachowań.
Podobne pytania z działu „Klasy obiekty i metody”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 38 pytań z tego działu.
- #87
Przedstawiony zapis w języku C# oznacza definicję klasy Car, która:
- #134
W przedstawionym kodzie zdefiniowano abstrakcyjną klasę figura i dziedziczącą po niej klasę prostokąta ze zdefiniowanymi polami i konstruktorami. Wskaż minimalną implementację sekcji /* metody klasy */ dla klasy Prostokat:
- #136
W języku C# szablon List implementuje funkcjonalność listy. Z inicjalizacji obiektu wykaz wynika, że jego elementami są:
- #153
Zastosowanie modyfikatora abstract w definicji metody klasy oznacza, że
- #158
Z przedstawionej definicji pola licznik można wywnioskować, że