https://cursos.alura.com.br/course/java-introducao-orientacao-objetos/task/30953
pra responder certo a essas perguntas, tenho que me conter e escrever a resposta errada que o curso em sua doutrinação tacanha considera a correta.
Vejam, o velho mundo se chama procedural, de procedure - ou função, ou subrotina ou ainda, quando associado a uma classe ou instância de uma classe, de método. Tudo nome para uma mesma noção: um trecho de código parametrizado e autocontido.
pois bem, a respostinha vem com essa doutrinação:
"à medida que outros formulários precisam da mesma validação de CPF, seu código precisava ser duplicado (geralmente através do uso abusivo do recurso de Copy & Paste)"
como assim duplicado? o nome do troço é justamente programação procedural porque escrevemos procedures e funções UMA VEZ para serem chamadas de vários pontos diferentes passando parâmetros diferentes. Essa foi a grande revolução trazida por ALGOL Na década de 60, pois antes era o famoso código macarrônico baseado em GOTOs, isso sim um copia-e-cola desvairado.
vou além, é muito bonito falar em orientação a objeto e encapsulamento e herança como uma forma de reaproveitar código. Mas é impressão minha ou no mundo Java Enterprise esse reaproveitamente encapsulado de códigos via Herança foi sendo deixada de lado, para ao invés se copiar e reescrever trechos de código inteiros ao se implementar Interfaces? ironias do destino, não amigos? dá-lhe CTRL-C, CTRL-V no superior mundo orientado a objetos (nascido, como ALGOL, nos anos 60)...