Abstract Class
An abstract class is a class that can’t be instantiated directly — it exists only to be inherited from. It defines structure and behavior that subclasses must complete.
In standard C++, a class becomes abstract when it has at least one pure virtual function:
class Animal
{
virtual void Speak() = 0; // pure virtual — subclasses must implement
};You can’t create an Animal, but you can create a Dog that inherits from it and implements Speak().
In Unreal Engine, you can also mark a class abstract with the UCLASS(Abstract) specifier. This tells the engine not to instantiate it — useful when you have a C++ base class and want Unreal to use a Blueprint subclass instead. The engine sees Abstract and skips it, loading only the concrete Blueprint child.
Further Reading
- Bjarne Stroustrup, The C++ Programming Language — abstract classes and inheritance
- Unreal Engine Documentation — Class Specifiers (docs.unrealengine.com)