Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Porque implementar imprime na classe mãe?

Fiquei com uma leve dúvida do porquê do instrutor ter implementado o método imprime() na classe mãe 'Programa'.

Achei que o método seria sobrescrito nas classes filhas assim como em Java (@Override). Porém foi implementado o mesmo método nas classes filhas... Ou seja, o método imprime() na classe mãe não serviu de nada, tanto é que, é possível excluí-lo e o código continua compilando.

1 resposta
solução!

O método na classe Pai é usado no caso de fallback.

Caso você extendesse essa classe e não definisse imprime(), ele subiria a hierarquia até encontrar algum pai que defina o método, antes de retornar erro (salve algumas particularidades do python por conta de herança múltipla).

O caso do @Override acontece de maneira implícita no python, apesar de ser possível utilizar anotações do módulo ABC para fazer com que esse comportamento fique mais nítido.