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