Skip to main content

¿Qué es la herencia de interfaz?

La herencia de interfaz es un mecanismo en ciertos lenguajes de computadora donde las funciones específicas son heredadas por una clase, y luego esa clase particular debe proporcionar implementaciones para esas funciones para que se complete. Las interfaces solo existen en ciertos lenguajes de programación orientados a objetos. Se pueden usar para emular la herencia múltiple sin permitir que una clase herede de forma múltiple, ya que generalmente no hay límites para la cantidad de interfaces de las que una clase puede heredar. Además de los métodos no implementados, las interfaces también pueden incluir constantes públicas.

En la herencia de interfaz, el objeto que hereda los stubs y constantes de método se considera un tipo de objeto de interfaz. Entonces, si una clase X hereda de una interfaz Y, cualquier instancia de la clase X también sería una instancia de la clase Y. Esto se vuelve más complicado cuando la herencia de la interfaz de una clase involucra más de una interfaz separada. Por cada interfaz adicional que se hereda, la clase resultante se puede usar legítimamente como una instancia de cada una. Si una clase heredara de diez interfaces diferentes, los objetos de esa clase podrían usarse como una instancia de once objetos diferentes, incluido él mismo.

Tal herencia compleja no es a menudo necesaria. La herencia de interfaz se usa para garantizar que una clase tenga un conjunto específico de comportamientos requeridos, y estos comportamientos le permiten realizar una variedad de funciones que de otro modo no podría hacer. Un ejemplo común de esto es la interfaz ActionListener en Java, que requiere una clase para implementar solo un método específico. La implementación exitosa de este método permite al usuario controlar botones, elementos de menú o cualquier otro objeto de ventana en la clase si lo desea. La herencia de interfaz es una forma relativamente simple de agregar funcionalidades complejas a una clase sin preocuparse por los problemas de herencia más complicados.

Una de las mayores ventajas de usar la herencia de interfaz es que permite que objetos específicos se usen en un sentido genérico. Dado que una clase que implementa una interfaz es una instancia de esa interfaz, se puede usar en cualquier lugar donde se requiera una instancia de esa interfaz. Por ejemplo, si la clase A implementa la clase C y la clase B también implementa la clase C, si un método toma como parámetro una instancia de la clase C, una instancia de la clase A o una instancia de la clase B sería un parámetro aceptable para usar . Las interfaces no se pueden instanciar por sí mismas porque no están completas, por lo que nunca habría un objeto que fuera puramente una instancia de clase C como parámetro.