An abstract class is a class in an object-oriented programming language that cannot be instantiated on its own. It is designed to be used as a base class from which other classes are derived. An abstract class typically contains one or more "abstract methods," which are methods that are declared but not implemented. Derived classes must provide the implementation for these abstract methods.