KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2011

PYTANIE NR 4.
Które zdanie, mówiące o obiektowych metodach programowania jest prawdziwe?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Dziedziczenie w OOP polega na tworzeniu klas pochodnych na podstawie klas bazowych, co umożliwia ponowne użycie i rozszerzanie kodu. Pozostałe zdania są fałszywe, bo obiekty są instancjami klas i nie zastępują klas ani nie pozwalają stosować pojęć "klasa" i "obiekt" zamiennie.

Pełne wyjaśnienie:

W programowaniu obiektowym klasa jest opisem typu (definiuje pola i metody), a obiekt jest konkretną instancją utworzoną na podstawie tej klasy. Z tego wynika, że pojęcia "klasa" i "obiekt" nie są zamienne: klasa opisuje, a obiekt "istnieje" w programie jako egzemplarz o konkretnym stanie.

Stwierdzenie "Dziedziczenie polega na tworzeniu klas na podstawie tzw. klas bazowych" jest prawdziwe, ponieważ dziedziczenie to mechanizm, w którym klasa pochodna przejmuje cechy (np. metody, pola) z klasy bazowej i może je rozszerzać lub nadpisywać. W praktyce pozwala to budować hierarchie typów i ograniczać duplikację kodu.

Pozostałe odpowiedzi są niepoprawne z typowych powodów definicyjnych:

  • "Zastosowanie obiektu wyklucza użycie klasy" – w OOP obiekty powstają na podstawie klas (lub innych konstrukcji typów), więc użycie obiektów zwykle wymaga wcześniejszego zdefiniowania klasy lub typu.
  • "Klasy tego samego rodzaju należą do jednego obiektu" – to odwrócenie relacji. To obiekty mogą być wielu instancjami tej samej klasy. Klasy nie "należą" do obiektu w tym sensie.
  • "Pojęcia obiekt i klasa można stosować zamiennie" – to częsty błąd początkujących. Obiekt to egzemplarz (instancja) z konkretnymi wartościami pól, a klasa to definicja wspólna dla wielu obiektów.

Wskazówka egzaminacyjna: gdy w odpowiedzi pojawia się "klasa bazowa / klasa pochodna", zwykle dotyczy to dziedziczenia. Gdy mowa o "instancji" lub "egzemplarzu", chodzi o obiekt.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Dziedziczenie to mechanizm OOP, w którym klasa pochodna jest tworzona na podstawie klasy bazowej. Dzięki temu przejmuje jej cechy (np. metody i pola) i może je rozszerzać lub modyfikować. Najczęściej służy do ponownego użycia kodu i budowania hierarchii typów.
Klasa to opis (szablon) definiujący, jakie dane i zachowania mają obiekty danego typu. Obiekt to konkretna instancja klasy, utworzona w czasie działania programu i mająca własny stan (wartości pól). W skrócie: klasa opisuje, obiekt jest egzemplarzem.
Pojęcia te dotyczą innych poziomów abstrakcji. Klasa jest definicją typu, wspólną dla wielu instancji. Obiekt jest pojedynczą instancją, z konkretnymi danymi w polach. Zamienne używanie terminów prowadzi do błędów w rozumieniu kodu i projektowania, np. w diagramach UML.
Tak. Jedna klasa może mieć wiele obiektów (instancji), np. klasa Użytkownik i wiele obiektów reprezentujących różnych użytkowników. Każdy obiekt ma własny stan (np. inne imię, login), ale wszystkie korzystają z tej samej definicji metod i pól zapisanej w klasie.
Zwykle pojawiają się słowa: "klasa bazowa", "klasa pochodna", "rozszerzanie klasy", "przejmowanie cech". Pytania często sprawdzają, że klasa pochodna powstaje na podstawie bazowej i może dodawać nowe elementy lub zmieniać zachowanie, zachowując wspólny interfejs.
W OOP obiekt jest zwykle tworzony na podstawie klasy (jest jej instancją), więc nie może "wykluczać" klasy. Nawet w językach z prototypami nadal istnieje pojęcie typu/struktury, na której bazuje obiekt. Na egzaminie warto pamiętać relację: klasa → instancja (obiekt).
Dziedziczenie pozwala wspólnie zdefiniować elementy powtarzalne, np. bazowy model z identyfikatorem albo bazowy kontroler z logiką autoryzacji, a potem tworzyć klasy bardziej szczegółowe. Zmniejsza to duplikację i ułatwia utrzymanie kodu, ale wymaga ostrożności, by nie tworzyć zbyt głębokich hierarchii.
Najczęstsze pomyłki to: utożsamianie klasy z obiektem ("to to samo"), odwracanie relacji ("klasy należą do obiektu"), oraz myślenie, że obiekt można "mieć" bez definicji typu. Pomaga zapamiętać: klasa to przepis, obiekt to konkretne ciasto upieczone z przepisu.
Nie. Oprócz dziedziczenia stosuje się m.in. kompozycję (obiekt zawiera inne obiekty) i delegowanie. W wielu projektach webowych kompozycja bywa preferowana, bo daje luźniejsze powiązania. Na poziomie egzaminu warto jednak rozumieć podstawy dziedziczenia i jego typowy cel.
Opanuj definicje: klasa, obiekt, dziedziczenie, polimorfizm, enkapsulacja. Przerób krótkie przykłady w wybranym języku (np. JavaScript/TypeScript lub Python): utwórz klasę, zrób 2–3 obiekty, a potem klasę pochodną. Ucz się na pojęciach, nie na samych słowach.
info

Statystycznie 69% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że dziedziczenie w OOP polega na tworzeniu klas pochodnych na podstawie klas bazowych, co umożliwia ponowne użycie i rozszerzanie kodu.

Źródła:

  • Oracle Java Tutorials – Inheritance: https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html (dostęp: 2026-03-01)
  • MDN Web Docs – Classes (JavaScript): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes (dostęp: 2026-03-01)
  • Python 3 Documentation – Classes (dziedziczenie i definicje klas): https://docs.python.org/3/tutorial/classes.html (dostęp: 2026-03-01)

Materiały:

  • Dokumentacje języków programowania (np. Java, Python, JavaScript/TypeScript) – rozdziały o klasach i dziedziczeniu
  • Materiały o OOP w kontekście projektowania aplikacji (diagramy UML: klasy i dziedziczenie)
  • Kursy wprowadzające do OOP oraz ćwiczenia z modelowania klas i tworzenia obiektów

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego