Dziedziczenie w programowaniu obiektowym polega na tworzeniu klasy pochodnej na podstawie klasy bazowej (a w niektórych językach także na wykorzystywaniu więcej niż jednej klasy/typu bazowego, zależnie od mechanizmu dziedziczenia). Sens tego podejścia to przede wszystkim ponowne użycie kodu: klasa pochodna przejmuje pola i metody z klasy bazowej, a następnie może dodawać własne elementy lub modyfikować zachowanie (np. przez przesłanianie metod).
Odpowiedź "definiowaniu nowej klasy przy wykorzystaniu jednej lub kilku klas już istniejących." opisuje dokładnie ten mechanizm: nowa klasa powstaje "na bazie" już zdefiniowanej, dzięki czemu buduje się hierarchię klas i ogranicza duplikację.
Dlaczego pozostałe propozycje są błędne?
- "hierarchicznym dzieleniu kodu programu na bloki." – dotyczy ogólnej struktury programu (np. bloków instrukcji, zakresów, sekcji), a nie relacji klasa–klasa. Hierarchia bloków nie jest dziedziczeniem.
- "braku bezpośredniego związku między strukturami a funkcjami." – to opis pasuje raczej do rozważań o paradygmatach programowania i organizacji kodu, ale nie definiuje dziedziczenia. W OOP relacja dziedziczenia dotyczy klas/typów, nie "braku związku" struktur z funkcjami.
- "dzieleniu aplikacji na moduły programowe." – modularizacja (podział na moduły, pakiety, biblioteki) to inny mechanizm porządkowania projektu. Moduły mogą zawierać klasy, ale sam podział na moduły nie tworzy relacji dziedziczenia.
Wskazówka egzaminacyjna: jeśli w treści pojawia się termin dziedziczenie, szukaj odpowiedzi mówiącej o tworzeniu klasy pochodnej i przejmowaniu cech/elementów z klasy bazowej, a nie o ogólnej organizacji plików, modułów czy bloków kodu.