今GUIは結構古い時代に設計された物や、それを間接的に使用していることが多いので
オブジェクト指向と言ったら継承っしょみたいなノリで継承が多用されてる

しかし、一口に継承と言っても
実装の継承: コードの使い回しを目的にした継承
概念の継承: 多態性を利用する目的の継承(インターフェース継承)
の二つの継承があり、この二つが混同されることによって厄介な問題が起きる。

ちなみに、C++はprivate継承といって、実装だけの継承も出来るのだけど、
boost::operatorsみたいな特殊なパターンを除いては、コンポジションが推奨されてるみたい。