A class that contains one or more abstract methods and therefore cannot be instantiated directly. It serves as a blueprint for descendant classes, which must provide concrete implementations of all abstract methods. See also *abstract method*, *virtual method*. (Ch. 18)