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