Olá Bruno, tudo bem com você?
Peço desculpas pela demora em lhe responder.
Meus parabéns pela implementação do código, fico feliz que tenha compartilhado com a comunidade do fórum Alura.
O código ficou bem compacto, uma dica sobre a declaração da classe CpfCnpj
, não é necessário fazer o uso dos parênteses (), como essa classe não é uma classe filha; classe que herda atributos de outra classe (classe mãe), o uso dos parênteses será redundante, por boa prática não é colocado no momento da declaração. Ficando da seguinte forma.
class CpfCnpj:
Sobre o padrão Factory, deixo abaixo um artigo que poderá aprimorar ainda mais o seu conhecimento sobre o assunto.
O artigo está em inglês, caso tenha dificuldades com o idioma recomendo o uso do tradutor do navegador.
Fico à disposição.
Abraços e bons estudos.