posted 19 years ago
Yes. The member methods of an abstract class can only be called on an instance of a concrete subclass. That's really the whole point of abstract classes: an abstract class is "incomplete" and needs to be "finished" by subclassing before it can be used.
Most of the time, when people ask questions like this, it's because they're thinking about how they program in a non-object-oriented language. If you look at it that way, then the fact that "you can't call the functions of an abtract class" just seems dumb. But once you're used to object orientation, you won't think about it this way any more; your goal won't be to find a function you can call, but to find an object you can send messages to. Once you start thinking in this new way, abstract classes make perfect sense.