A Saturn IS A Car is a specialization relationship, meaning that a Saturn is a special kind of car.

If you start with a car base class, assuming you had functions like honk, turn left, turn right, stop, accelerate, etc. Then you could create a Saturn, but use it as a car. You could create any kind of car. Kind of like when you're at the car rental agency. Any car will do, as long as it holds you.

However, if you require detail at the specialization level, then you may want to know specific details of the car, like where the transmission dipstick is, or how many RPMs or horsepower a Saturn has (not many).

I don't see much of "A Car IS A Saturn", except in broken inheritance. At this point, you're trying to hide the details the base class, in an inherited class. This is usually a bad idea. The problem there is that you still have to implement the base class function, but then you have to make it do nothing. At the point you do this, you drive the people using your classes nuts. ("What! This used to work!)

You want the more general classes higher in the heirarchy, and the more specific down lower.

My 2 cents.

Glen