What is an abstract class ?

What is an abstract class ?

A. A class that has direct instances, but whose descendants may have direct instances
B. A class that has direct instances, but whose descendants may not have direct instances
C. A class that has no direct instances, but whose descendants may have direct instances
D. All of the mentioned

Explanation: An abstract type is a type in a nominative type system which cannot be instantiated directly.