Many important projects go off track because of bad inheritance. It's a disease that can eat a project alive. We've been asked to look at numerous failed projects with very large budgets, and improper inheritance is a typical problem. Small projects can sometimes avoid the full consequences of improper inheritance if the developers communicate well and the system design is easy to follow, even if it is incorrect. Large projects don't have this luxury, and improper inheritance causes working code to break in ways that can't be fixed easily. The problem is quite real and can be very subtle. In our training and mentoring experience, very few OO newcomers handle this topic easily. |