7.7 Abstract, concrete, and instantiable classes

A class is either abstract or concrete. Abstract classes are intended to be superclasses. There are never any direct instances of an abstract class. All superclasses of an abstract class must also be abstract. Concrete classes are intended to have direct instances.

When you define a class with define class, the result is a concrete class. When you define a class with define abstract class, the result is an abstract class.