|Think about Loose Coupling|
Object Orientation is a golden dream, a lovely ideal, but we program for the real world. OO isn't always the best solution -- some managers seem to insist on doing a project 'OO' so they can put another line on their resume. Not because it makes sense technically.
For example .. I'm writing a quick script to mirror a web site. Am I using OO? No, not really. I'm just getting the job done.
Another project I'm working on is quite large. Will I be using OO? Perhaps it's not pure OO, but I will certainly write modules to handle the two (so far) classes I have. And, yes, one class inherits the other. But I'm doing it that way because it's the right tool for the job. Not because everything looks like a nail.
It seems that if you mention a project you worked on was 'OO' you suddenly appear much more intelligent, technically competent and attractive to the other sex. Bollocks.
'OO' is one way to do the job. Period.