С какой проблемой вы сталкиваетесь с этими GUI Toolkits?
Я думаю, они происходят от общего базового класса Widget, так что все они предоставляют минимальный интерфейс. Таким образом, вы можете написать код, который может работать с любым SpecializedWidgetType. Я думаю, что это хорошее использование наследования ..
Предпочитаю композицию наследованию .. но не рождаем композицию там, где наследование является правильным ответом. Всегда есть исключения из правила / руководства.