What is the opposite of a base class in OOP?
A base class is a relative term. It only applies when considering one of its derived classes. Here are some terms that I consider opposites (and mostly orthogonal among themselves):
- base class vs derived class; similarly super class vs sub class
- abstract class vs concrete class
- root class vs leaf class
- sealed (also, final) class vs inheritable (non-sealed) class
- nested class vs top-level class
Abstract and (normally) root classes are designed to be base classes. Sealed classes cannot be base classes, because they're non-inheritable. A root class is a class without a base class (in C# and Java, this class is Object
). A leaf class has no subclass, so it's not a base class; but it's not necessarily sealed. Sealed classes, on the other hand, are always leaf classes.
So,
I am looking for the name of a class that has not been sub-classed, YET
It seems that you're looking for a leaf class, but I don't consider it to be the opposite of a base class.
I usually hear leaf class. Java enforces it with final
.