in reply to Abstract Classes
That's not the generally agreed-on definition.
As a source on this (a source I have within reach), I'll cite the "Gang of Four" Design Patterns book, page 15:
An abstract class is one whose main purpose is to define a common interface for its subclasses. An abstract class will defer some or all of its implementation to operations defined in subclasses; hence an abstract class cannot be instantiated.
That's the definition I've been used to working with for the past decade or so.
You might be thinking of an "interface".