Why is this not a classifying inheritance?
In general, inheritance provides a natural classification mechanism for types of objects, allowing you to uniquely model the community of objects. When class D inherits class B public, the relationship between classes becomes
D is a B
This establishes the classification: "all D are B s".
However, when the inheritance is private or protected, D does not become B , so it is not possible to establish an additional classification over D In fact, private or protected inheritance can be seen as an implementation detail, not an interface detail.
source share