Feito por Gyordano G R - Agora com Interfaces e classes base abstratas.