Considerando que o PHP dá suporte ao conceito de interfaces, por que muitas vezes foi escolhido utilizar métodos abstratos de classes abstratas? É o tipo de escolha que cabe ao desenvolvedor ou há uma regra a ser seguida?
E, compartilhando da dúvida de uma pergunta anterior (do Leonardo), em casos de linguagens que dão suporte ao conceito de interfaces, como saber quanto utilizar interfaces ou classes abstratas?