In software development, there's an axiom that states that you should reuse code when it's possible and useful to do so. Common sense, right? Why WOULDN'T you reuse code? Not only does it save you from reimplementing functionality that you may have written before in othe projects, it also plays a big role in ensuring that your code is as bug-free as possible, due to the (obvious) fact that as code is used over and over again, bugs will pop up and be fixed.
In my experience, people typically try to solve the code reuse 'problem' using inheritance chains. By definition, it is true that classes who inherit do reuse code that was written in the parent. HOWEVER, the little bit of code that gets reused in this instance is not worth the inevitable huge, hard-to-see inheritance chain that is created. Inheritance locks your classes into a rigid, fragile system that can be tedious and difficult to break out of. There IS another solution -- composition. Anyone who has taken an undergrad course in software engineering will be familiar with it.