Hola,
Las interfaces son contratos que tienes que implementar, es decir, no hacen nada, no tienen funcionalidad alguna, pero debes "firmar" si quieres utilizaros, y no trabajan en el contexto de una clase.
Las clases abstractas cómo bien dice su nombre, son clases y por ende puedes definir un comportamiento, una lógica etcétera. Así pues tu puedes utilizar la clase abstacta pero también debes implementar cada uno de los métodos que definas como tal.
Aquí te dejo un ejemplo de clase abstracta, saludos.
http://uno-de-piera.com/clases-abstr...emplo-de-crud/