An abstract class in object-oriented programming is a class that cannot be instantiated on its own and is designed to be subclassed by other classes. It provides a template for other classes by defining methods that must be implemented within any derived class, facilitating code reuse and enforcing a contract for subclasses.