This is an implementation of the following schema:


Leaving out "Faculty" (and the Nodes below "Faculty")...
So, the deepest Hierarchy-Structure in the Demo is:
CommunityMember (implementing no interface, it's the most common "base-class")
--- Employee (implementing cCommunityMember)
------ Staff (implementing cCommunitMember, as well as cEmployee)

The "construction" (or better: initialization) of new Class-Instances is (for all Entities) solved via a:
Friend Sub Init(<several InitParams>, ...)

To keep the example simple - I've not bothered with proper "Plural-Classes" (ListClasses [as e.g. cStudents]) -
which then would contain the typical internal Collection, a Count-Property, an Add-method, and an Item-Method (e.g. returning an instance of cStudent)...

Instead these Collection-Classes are defined directly in the Form (as e.g. Private mStudents As Collection) -
accompanied (also directly in Form-Code) by appropriate AddNewStudent(...)-functions.

Well, there's not much more to explain - the example is relatively simple to understand ...
Although it contains a lot of Classes, the Code-Volume per Class is small (only sporting very few Properties per Class).

Here's the Demo-Zip:
ImplementsHierarchy.zip

Have fun,

Olaf