Projed si historii diskuse. Problem nastane, kdyz mas mutable objekty.
To je vše o tom, že si někdo myslí, že čtverec je obdélník. Když pak zjistí, že některé vlastnosti na to nepasují, zavrhne dědění jako celek - s vaničkou vyleje i dítě. Přitom kdyby neudělal chybu v počátečním předpokladu, že čtverec == obdélník, tak by věděl, že tyto dvě třídy od sebe dědit nemohou.
Takže dědičnost je nutné používat tam, kde má smysl a nepoužívat tam, kde smysl nemá. Bez dědičnosti by naše aplikace v OOP byly mnohonásobně delší. A ten kdo tvrdí, že dědičnost nepoužívá, ji používá neustále.