Interfaces
En teoría de orientación a objetos, la interfaz de una
clase es todo lo que podemos hacer con ella.
A efectos prácticos: todos los métodos, propiedades de la clase conforman su interfaz.
Nota.
(Las variables públicas también
formarían parte de la interfaz, pero no es recomendable declarar variables
públicas. Siempre acceder a ellas a través de propiedades).
No tendría sentido
establecer una relación de herencia entre conjuntos completamente distintos,
por más que muchos de sus miembros fueran a ser comunes. Por ejemplo, no
estaría bien heredar una clase tarjeta de crédito y otra clase cuenta corriente
de una clase banco. Por más que en todos ellos puedan hacerse ingresos o
reintegros, está claro que ni las tarjetas de crédito ni las cuentas corrientes
son bancos. En resumen, no hay que basarse únicamente en la funcionalidad para
establecer una relación de herencia entre clases.
Es en este último caso
donde juegan un papel importante las interfaces. Una interfaz es la definición
de un conjunto de miembros que serán comunes entre clases que serán (o no)
completamente distintas. La interfaz conoce cómo será la funcionalidad de
cualquier clase que la implemente pero, no podrá conocer los detalles de esa
implementación en cada una de esas clases, de modo que una interfaz no
puede implementar nada de código, sino que, sólo puede describir un conjunto de
miembros.
Nota.
(Las variables públicas también
formarían parte de la interfaz, pero no es recomendable declarar variables
públicas. Siempre acceder a ellas a través de propiedades).