Boa noite Pessoal.
Existe também outra diferença entre Interface e Classe Abstrata não mencionada aqui.
Uma classe Abstrata herda (extende) da classe Object, ou seja, ela tem uma hierarquia de herança definida, e esta é a razão de não se poder fazer herança múltipla com classes Abstratas.
Já a Interface não tem hierarquia de herança, ou melhor, não há herança definida em uma Interface, e por esta razão voce pode implementar várias interfaces em uma classe,
Outra coisa também é que ninguém notou, voce pode declarar uma classe como Abstrata sem que haja métodos abstratos nela. Heinnnnnn :!: :!: :!: Como é que é :?: :?: :?:
Isto mesmo, tem desenvolvedores, que declaram classes Abstratas, só para obrigar a não instanciá-las, simplesmente para isso, apesar de que isto não seja uma boa prática de POO, eu não recomendo fazer isto.