Con lo que habeis explicado, lo mismo da una clase abstracta que una interfaz, falta el detalle que diferencia una de otra, y es que una clase abstracta, aparte de servir de plantilla puede definir variables y código que son heredados por las clases que la extienden.
Más que nada por que la gente suele encontrarse despues con el concepto de Interfaz y piensa "¿pero no es lo mismo?"
S!