Dziedziczenie to mechanizm programowania obiektowego, w którym tworzy się nową klasę (klasę pochodną) na podstawie klasy już istniejącej (klasy bazowej/superklasy). Klasa pochodna przejmuje (dziedziczy) pola i metody klasy bazowej, a następnie może je rozszerzać (dodawać nowe elementy) lub modyfikować zachowanie (np. przez nadpisywanie metod, zależnie od języka).
Dlatego poprawne jest stwierdzenie: "tworzenie nowej klasy na podstawie jednej lub kilku już istniejących". W praktyce pozwala to budować hierarchie klas i ułatwia ponowne użycie wspólnego kodu w wielu typach.
Pozostałe odpowiedzi opisują inne działania, które nie są istotą dziedziczenia:
- "usunięcie z istniejącej klasy zbędnych elementów" – to raczej refaktoryzacja (porządkowanie projektu) lub modyfikacja kodu, a nie relacja dziedziczenia między klasami.
- "łączenie obiektów" – to skojarzenie pasuje do kompozycji/agregacji, gdzie obiekt zawiera inne obiekty jako pola (relacja "ma" / has-a), a nie "jest" (is-a).
- "kopiowanie cech jednego obiektu do innego" – dziedziczenie nie polega na kopiowaniu stanu instancji. W OOP obiekty mają własny stan, a dziedziczenie dotyczy definicji typu (klasy), czyli tego, jakie cechy i zachowania obiekty danego typu mogą mieć.
Wskazówka egzaminacyjna: jeśli w odpowiedzi pojawia się "nowa klasa na podstawie istniejącej" albo relacja is-a, najczęściej chodzi o dziedziczenie. Jeśli mowa o "zawieraniu" obiektów, to zwykle kompozycja.