Olá. Não entendi muito bem a finalidade de não poder haver corpo na classe mãe de um método abstrato. A intenção da herança não seria de reduzir a repetição de código? Pelo que eu entendi, se eu tiver um comando em comum em todos métodos herdados pelas classes filhas, eles terão que ser copiados e escritos em cada classe filha. Os métodos abstratos seriam mais apropriados apenas para métodos que obrigatoriamente variam para cada classe filha? No caso de alguma repetição, seria melhor abrir mão deste recurso, talvez utilizando um protected para que o método não seja acessado de forma genérica?