Diferencias entre interfaz y clases abstractas

¿Cuáles son las diferencias entre una interfaz y una clase abstracta?
Herencia múltiple:
Podemos lograr múltiples herencias usando interfaces. Como ABAP no admite más de una clase Padre (Clase Superior), sólo puede tener una clase abstracta como clase Padre.
Nueva funcionalidad:
Si añadimos un nuevo método en la interfaz, todas las clases que han implementado la interfaz tienen que implementar este método.
Si no implementamos el método, va a resultar un error en tiempo de ejecución RUN – Time error.
Para la clase abstracta, si añadimos un método no abstracto, no es necesario volver a implementar el método en cada clase heredada.
Comportamiento por defecto:
Podemos tener un comportamiento predeterminado de un método en la clase abstracta. No podemos tener ningún comportamiento predeterminado en la interfaz, ya que sólo contiene la firma de los métodos.
Visibilidad:
Todos los componentes de la interfaz son públicos por defecto.
Para la clase abstracta, podemos establecer la visibilidad de cada componente.
 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *