Clases abstractas vs. Interfaces: ¿Cúando usar cada una?

En ciertas ocasiones, en las cuales debemos implementar una serie de clases con algún tipo superior que sea la base de todas ellas, nos debemos parar a plantearnos ¿qué es mejor usar, una clase abstracta o una interfaz?. Vamos a investigar un poco más, de una forma muy sencilla que nos servirá de regla nemotécnica para su correcto uso.

 Clases Abstractas

Se utiliza para indicar que una clase está incompleta y que sólo se va a utilizar como una clase base. No se podrá definir un nuevo objeto directamente de ella. Todas las clases que hereden de esta clase abstracta tomarán como base su comportamiento, formando parte de su esqueleto, lo podríamos definir como «ES».

Interfaces

Por definición, es una serie de métodos, propiedades, índices y eventos, que podemos definir, y que la clase que herede de ellos debe cumplir. Esto significa que clases que implementen esta interfaz pueden ser diferentes casi por completo, pero contener todo lo que la interfaz define. Por esto mismo, podemos decir que es un «PUEDE».

Ser o Poder

¿Qué es esto que suena a serie de mafiosos de Netflix? Pues muy sencillo, veamos un ejemplo práctico.

Queremos definir una serie de animales, un pato, un tiburón, un gorrión y un mono (no podía faltar). Si lo pensamos, todos SON animales, por lo tanto esta será nuestra clase abstracta.

El pato y el gorrión, a su vez, PUEDEN volar, y el tiburón PUEDE nadar. Éstas serán nuestras interfaces.

Este sería el resultado:

¿Veis qué fácil? Si os ha resultado práctico, dejad vuestro comentario, y animaros a compartirlo.

4 comentarios en “Clases abstractas vs. Interfaces: ¿Cúando usar cada una?”

  1. Un ejemplo sumamente práctico y claro que explica de manera transparente el uso de ambos mecanismos, que tantas veces es difícil de asimilar y otras veces no nos queda claro en que caso usar una u otra.

  2. Varios años usando, de manera intuitiva y mecánicamente clases abstractas e interfaces, pero nunca tenia del todo claro cuando usar cada una de ellas, este ejemplo es perfecto, muy claro. Ya se cuando usar cada una… ser o poder! 🙂

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.