KWALIFIKACJA INF2 + INF3 - CZERWIEC 2006

PYTANIE NR 9.
Dziedziczenie w programowaniu obiektowym pozwala na
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Dziedziczenie w OOP polega na tworzeniu klasy pochodnej na bazie klasy (lub klas) bazowych. Klasa potomna przejmuje pola i metody rodzica, może je rozszerzać oraz nadpisywać, co wspiera ponowne użycie kodu i budowanie hierarchii typu is-a.

Pełne wyjaśnienie:

Dziedziczenie to jeden z podstawowych mechanizmów programowania obiektowego. Oznacza tworzenie klasy pochodnej na podstawie klasy bazowej (czasem także kilku klas, zależnie od języka). Dzięki temu klasa potomna dziedziczy pola i metody klasy rodzica, a następnie może:

  • rozszerzać funkcjonalność (dodawać nowe pola/metody),
  • modyfikować zachowanie poprzez nadpisywanie metod, co jest powiązane z polimorfizmem,
  • tworzyć czytelną hierarchię klas opartą o relację typu is-a.

Dlatego poprawne jest stwierdzenie: "tworzenie nowej klasy na podstawie jednej lub kilku już istniejących klas". Obejmuje ono zarówno dziedziczenie pojedyncze (typowe m.in. w wielu językach popularnych w aplikacjach webowych), jak i wielokrotne (dostępne w części języków).

Pozostałe odpowiedzi opisują inne zjawiska:

  • "kopiowanie cech jednego obiektu do innego" przypomina klonowanie lub kopiowanie stanu obiektu; dziedziczenie dotyczy relacji między klasami, a nie kopiowania danych między instancjami,
  • "usunięcie z istniejącej klasy zbędnych elementów" to raczej refaktoryzacja lub uproszczenie projektu, a nie mechanizm OOP,
  • "łączenie obiektów" odpowiada kompozycji/agregacji (relacja has-a), gdzie obiekt zawiera inny obiekt jako pole, zamiast dziedziczyć po nim.

Na egzaminie warto zapamiętać skrót myślowy: dziedziczenie = "jest rodzajem" (is-a), kompozycja = "ma w sobie" (has-a). To szybko pozwala odróżnić mechanizmy projektowe.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Dziedziczenie to mechanizm OOP, w którym klasa pochodna jest tworzona na bazie klasy bazowej. Klasa potomna przejmuje jej pola i metody oraz może dodawać własne elementy lub nadpisywać metody.
Dziedziczenie odpowiada relacji is-a ("X jest rodzajem Y"), np. "Samochód jest pojazdem". Kompozycja to relacja has-a ("X ma Y"), np. "Samochód ma silnik". W pytaniach szukaj tej różnicy znaczeniowej.
Wspólne pola i metody umieszcza się w klasie bazowej, a klasy pochodne je dziedziczą. Dzięki temu nie trzeba powielać tego samego kodu w wielu klasach, a zmiana w klasie bazowej może automatycznie dotyczyć klas potomnych.
Klasa bazowa (rodzic) to ta, z której dziedziczymy wspólne elementy. Klasa pochodna (dziecko) powstaje na jej podstawie, przejmuje dostępne pola/metody i może je rozszerzać. To sposób na budowanie hierarchii klas.
Nie w każdym języku. Część języków stosuje dziedziczenie pojedyncze (jedna klasa bazowa), a inne dopuszczają dziedziczenie wielokrotne (kilka klas bazowych). Na egzaminie ważne jest ogólne rozumienie: nowa klasa powstaje na bazie istniejącej.
Najczęściej myli się dziedziczenie z kopiowaniem obiektów (klonowaniem) albo z kompozycją ("łączeniem obiektów"). Błąd wynika z przenoszenia potocznych skojarzeń na pojęcia OOP. Warto sprawdzić, czy mowa o relacji między klasami.
Nadpisywanie pozwala klasie pochodnej zmienić sposób działania metody odziedziczonej z klasy bazowej, zachowując tę samą nazwę i sygnaturę. To kluczowy element polimorfizmu: różne klasy mogą inaczej realizować "to samo" zachowanie.
Nie. Dziedziczenie dotyczy przejmowania implementacji i/lub struktury z klasy bazowej. Implementacja interfejsu zwykle oznacza zobowiązanie do dostarczenia metod o określonych sygnaturach. W testach te pojęcia bywają celowo zestawiane jako pułapka.
Kompozycja jest lepsza, gdy obiekt ma zawierać inny obiekt jako część składową i łatwo podmieniać jego zachowanie (relacja has-a). Dziedziczenie warto stosować, gdy istnieje stabilna relacja typu is-a i wspólna baza kodu.
Ćwicz rozpoznawanie relacji is-a i has-a, ucz się słownictwa (klasa bazowa/pochodna, nadpisywanie, polimorfizm) oraz analizuj krótkie przykłady hierarchii klas. W testach zwracaj uwagę, czy mowa o klasach czy o obiektach.
info

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

Eksperci podkreślają: "Dziedziczenie w OOP polega na tworzeniu klasy pochodnej na bazie klasy (lub klas) bazowych."

Źródła:

  • Oracle Java Tutorials – Inheritance: https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html - dostęp 2026-02-28
  • Microsoft Learn – Dziedziczenie (C#): https://learn.microsoft.com/pl-pl/dotnet/csharp/fundamentals/object-oriented/inheritance - dostęp 2026-02-28
  • Python Documentation – Inheritance: https://docs.python.org/3/tutorial/classes.html#inheritance - dostęp 2026-02-28

Materiały:

  • Dokumentacja języka używanego na zajęciach (sekcja o dziedziczeniu)
  • Kurs lub rozdział z OOP obejmujący relacje is-a/has-a
  • Ćwiczenia z projektowania UML (diagramy klas i relacje dziedziczenia)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego