O conceito de Programação Orientada a Objetos que permite construir objetos especializados
utilizando características de objetos mais generalistas, possibilitando reuso de código à medida que os
atributos e métodos de classes já existentes podem gerar novas classes mais específicas, é o de