KWALIFIKACJA INF2 + INF3 - CZERWIEC 2015

PYTANIE NR 26.
W programowaniu obiektowym mechanizm współdzielenia pól i metod klasy w taki sposób, że klasa pochodna zawiera metody zdefiniowane w klasie bazowej nazywa się
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Dziedziczenie to mechanizm OOP, w którym klasa pochodna przejmuje (dziedziczy) pola i metody z klasy bazowej, dzięki czemu może używać gotowych implementacji lub je rozszerzać. Polimorfizm dotyczy różnych zachowań przy wspólnym interfejsie, a hermetyzacja/enkapsulacja – ukrywania danych.

Pełne wyjaśnienie:

Opis w pytaniu dotyczy sytuacji, gdy klasa pochodna "zawiera" (przejmuje) metody i pola zdefiniowane w klasie bazowej. Taki mechanizm w programowaniu obiektowym nazywa się dziedziczeniem. Dzięki dziedziczeniu można:

  • ponownie wykorzystać wspólny kod bez kopiowania go do wielu klas,
  • budować hierarchie typów (ogólniejsze klasy bazowe i bardziej szczegółowe klasy pochodne),
  • rozszerzać zachowanie przez dodawanie nowych metod lub nadpisywanie istniejących.

Odpowiedź "wirtualizacją" nie pasuje do definicji: wirtualizacja jest pojęciem z obszaru uruchamiania systemów/środowisk (np. maszyny wirtualne) albo z technik językowych (np. metody wirtualne), ale nie oznacza samego przejmowania pól i metod przez klasę pochodną.

Odpowiedź "polimorfizmem" także jest nieadekwatna. Polimorfizm opisuje możliwość traktowania obiektów różnych klas w jednolity sposób (np. przez typ bazowy lub interfejs) oraz wywoływania metod, które w zależności od rzeczywistego typu obiektu wykonują różne implementacje. Polimorfizm często współwystępuje z dziedziczeniem, ale nie jest tym samym mechanizmem.

Odpowiedź "hermetyzacją" odnosi się do idei ukrywania stanu i ograniczania dostępu do danych obiektu, zwykle omawianej jako enkapsulacja. Enkapsulacja dotyczy m.in. modyfikatorów dostępu i udostępniania API klasy, a nie przejmowania metod z klasy bazowej.

Wskazówka egzaminacyjna: gdy w treści pojawiają się sformułowania typu "klasa pochodna przejmuje/ma metody klasy bazowej", niemal zawsze chodzi o dziedziczenie.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Dziedziczenie to mechanizm OOP, w którym klasa pochodna przejmuje pola i metody klasy bazowej. Dzięki temu można ponownie używać wspólnej logiki i tworzyć hierarchie typów (ogólne klasy bazowe i bardziej szczegółowe klasy potomne).
Szukaj sformułowań: "klasa pochodna ma/metody z klasy bazowej", "przejmuje pola", "rozszerza klasę", "potomek rodzica". To opis przejmowania składowych i budowania relacji bazowa–pochodna, czyli dziedziczenia.
Dziedziczenie opisuje relację między klasami i przejmowanie ich składowych. Polimorfizm dotyczy sposobu wywoływania metod: ten sam "kontrakt" (typ bazowy/interfejs) może prowadzić do różnych zachowań zależnie od rzeczywistego typu obiektu.
Enkapsulacja (czasem spotyka się określenie "hermetyzacja") polega na ukrywaniu danych i kontrolowaniu dostępu do stanu obiektu, np. przez modyfikatory dostępu i metody akcesorów. Dziedziczenie nie ukrywa danych, tylko umożliwia przejmowanie składowych.
Nie. W typowym OOP kod nie jest "kopiowany ręcznie", tylko klasa pochodna uzyskuje dostęp do pól i metod klasy bazowej zgodnie z zasadami języka. W praktyce obiekt klasy pochodnej może korzystać z implementacji bazowej i ewentualnie ją rozszerzać.
Gdy wiele klas ma wspólną część logiki, np. wspólne walidacje, obsługę błędów lub pola domenowe. Przykładowo można mieć klasę bazową dla użytkowników, a klasy pochodne dla różnych ról. Ważne, by nie nadużywać hierarchii.
Najczęściej myli się dziedziczenie z polimorfizmem (bo często występują razem) oraz enkapsulację z innymi filarami OOP. Pomaga zapamiętać: dziedziczenie = relacja bazowa–pochodna, polimorfizm = różne zachowania, enkapsulacja = ukrywanie danych.
Nie w znaczeniu przejmowania metod i pól. "Wirtualizacja" zwykle dotyczy uruchamiania środowisk (VM) albo cech języka typu "metody wirtualne", ale sama w sobie nie opisuje relacji klasy bazowej i pochodnej polegającej na dziedziczeniu.
W wielu językach spotkasz konstrukcje typu extends lub : (dziedziczenie po klasie), a także pojęcia "base/super" i "derived/sub". Na egzaminie ważniejsze jest jednak rozumienie relacji niż konkretna składnia.
Przećwicz rozpoznawanie pojęć po definicjach i krótkich opisach. Umiej odróżnić dziedziczenie od polimorfizmu i enkapsulacji oraz podać prosty przykład hierarchii klas. Dobrze działa rozwiązywanie testów i analiza typowych dystraktorów.
info

To pytanie poprawnie rozwiązuje 61% zdających egzamin. średnie

W praktyce zawodowej kluczowe jest to, że dziedziczenie to mechanizm OOP, w którym klasa pochodna przejmuje (dziedziczy) pola i metody z klasy bazowej, dzięki czemu może używać gotowych implementacji lub je rozszerzać.

Źródła:

  • Oracle Java Tutorials: "Inheritance" (The Java™ Tutorials) https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html - accessed 2026-02-27
  • Microsoft Learn: C# inheritance (documentation page) https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/object-oriented/inheritance - accessed 2026-02-27
  • Wikipedia (PL): "Dziedziczenie (programowanie)" https://pl.wikipedia.org/wiki/Dziedziczenie_(programowanie) - dostęp 2026-02-27

Materiały:

  • Dokumentacja/poradniki OOP dla wybranego języka (np. Java, C#, PHP)
  • Kursy podstaw OOP (dziedziczenie vs polimorfizm vs enkapsulacja)
  • Materiały do INF.3 obejmujące projektowanie aplikacji i podstawy programowania

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego