W programowaniu obiektowym, czym jest nadpisywanie metody (method overriding)?
W programowaniu obiektowym, czym jest nadpisywanie metody (method overriding)?
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: B
B. Tworzeniem w klasie pochodnej metody o tej samej nazwie i sygnaturze co metoda w klasie bazowej. – Jest to poprawna odpowiedź, ponieważ:
- Nadpisywanie (overriding) jest kluczowym mechanizmem polimorfizmu w programowaniu obiektowym.
- Pozwala klasie pochodnej na dostarczenie własnej, specyficznej implementacji metody, która została już zdefiniowana w jej klasie bazowej.
- Aby to było możliwe, metoda w klasie bazowej musi być oznaczona jako wirtualna (np. słowem kluczowym 'virtual' w C# lub C++).
Dlaczego inne odpowiedzi są nieprawidłowe:
A. Tworzeniem w tej samej klasie wielu metod o tej samej nazwie, ale różnych parametrach. – To jest definicja przeciążania metody (method overloading), a nie nadpisywania.
C. Ukrywaniem metody klasy bazowej, tak aby nie była dostępna w klasie pochodnej. – Nadpisywanie nie ukrywa metody, lecz zmienia jej działanie. Do ukrywania służą modyfikatory dostępu, np. 'private'.
D. Zmianą nazwy metody w trakcie dziedziczenia. – Jest to niemożliwe. Nadpisywanie wymaga, aby nazwa i parametry metody były identyczne.
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
- Hermetyzacja (Enkapsulacja w OOP)Jeden z fundamentalnych filarów programowania obiektowego, polegający na ukrywaniu wewnętrznego stanu obiektu (pól prywatnych) i udostępnianiu kontrolowanego dostępu przez publiczne metody/właściwości.
- Modyfikatory dostępu (Access Modifiers)Słowa kluczowe definiujące widoczność i zakres dostępności składowych klasy (pól, metod, właściwości).
- 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ę.
Podobne pytania z działu „Dziedziczenie i polimorfizm”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 20 pytań z tego działu.
- #92
Co można powiedzieć o metodach klasy Point?
- #173
Dziedziczenie jest stosowane, gdy istnieje potrzeba
- #207
W przedstawionym kodzie zostało zaprezentowane jedno z podstawowych założeń programowania obiektowego. Jest to
- #237
Odpowiednikami zmiennych i funkcji programowania strukturalnego są w programowaniu obiektowym
- #285
Mechanizm programowania obiektowego w C++, wykorzystujący funkcje wirtualne (z ang. Virtual), który przy wywołaniu metod zwalnia programistę z obowiązku sprawdzenia jaką klasę pochodną aktualnie obsługuje, np. przez wskaźnik nosi nazwę