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.