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