This set of code is derived from the work performed building the Direct2Learning Java Avionics training platform (now defunct).
It uses multiple inheritance, however base classes are pure virtual effectively to provide interfaces.
The code sample is missing the complicated ExecScheduler which is where the scheduling of modules is performed. Writing the ExecScheduler is reasonably complex - it needs to work with threads and provide timing. I've got a Java version of this which is at the end for illustration.