Dziedziczenie to mechanizm programowania obiektowego, w którym klasa potomna powstaje na bazie klasy bazowej. Oznacza to, że klasa potomna przejmuje (zgodnie z regułami dostępu) elementy klasy bazowej i może je rozszerzać lub modyfikować, tworząc relację typu IS-A (klasa P jest szczególnym przypadkiem typu B).
Dlatego sformułowania "wywodzi się z klasy B", "rozszerza klasę B" oraz "dziedziczy po klasie B" są typowymi, poprawnymi opisami tej samej relacji. W praktyce spotyka się je także jako odpowiedniki terminów z dokumentacji języków: derives from, extends, inherits from.
Natomiast określenie "generuje" nie jest standardowym terminem opisującym dziedziczenie. "Generowanie" kojarzy się z mechanizmami kreacji (np. wytwarzanie obiektów przez fabrykę/builder) albo z generowaniem kodu, czyli z czynnościami innymi niż definicja relacji między klasami. Relacja dziedziczenia nie polega na tym, że jedna klasa "produkuje" drugą w czasie działania programu, lecz na tym, że w projekcie/definicji typu jedna klasa jest zbudowana na podstawie drugiej.
Typowe pułapki na egzaminie to przeoczenie negacji w pytaniu ("nie opisuje") oraz mylenie dziedziczenia z kompozycją: kompozycja opisuje relację HAS-A (obiekt zawiera inny obiekt), a dziedziczenie relację IS-A (typ jest specjalizacją innego typu). W tym zadaniu trzeba rozpoznać termin, który nie pasuje do dziedziczenia.