Иерархии классов включают вам к функциональности повторного использования путем факторизации общностей в суперклассы. Суперклассы могут задать интерфейсы и могут добавить определенные черты в подклассы. Подклассы специализируют данные и функциональность, заданную в суперклассе.