Pergunta de entrevista da empresa UKG

Given this code consisting mainly of Abstract classes and a main function, fill in missing pieces to build a complete solution that I'm asking for.