Oi, Diego! Como vai?
Agradeço por compartilhar.
Gostei da forma como você estruturou o código separando interfaces e classe, isso mostra que você já está aplicando bem a ideia de organização e reutilização na Orientação a Objetos ao criar IVoavel e IPilotavel para representar comportamentos diferentes.
Continue explorando essa lógica de contratos com interfaces, pois ela ajuda muito a deixar o código mais flexível e fácil de expandir em projetos maiores.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!