Abstract Class
In plain terms
A class that can't be instantiated and may have unimplemented methods.
Going deeper
An abstract class provides a partial implementation and defines methods subclasses must complete, serving as a base for related classes. It's a half-built template.
Under the hood
Mixes concrete and abstract methods; unlike interfaces, it can hold state and shared logic.
Examples
Base classes, shared logic, OOP, template methods, partial implementation.
Think of it like...
Like a partially-filled form template that each user must complete differently.