O que é herança de interface?
A herança de interface é um mecanismo em certas linguagens de computador em que funções específicas são herdadas por uma classe e, em seguida, essa classe específica deve fornecer implementações para essas funções para ser concluída. As interfaces existem apenas em certas linguagens de programação orientadas a objetos. Eles podem ser usados para emular várias heranças, sem permitir que uma classe se multiplique, porque geralmente não há limites para o número de interfaces das quais uma classe pode herdar. Além de métodos não implementados, as interfaces também podem incluir constantes públicas.
Na herança de interface, o objeto que herda stubs e constantes de métodos é considerado um tipo de objeto de interface. Portanto, se uma classe X herdada de uma interface Y, qualquer instância da classe X também seria uma instância da classe Y. Isso fica mais complicado quando a herança da interface de uma classe envolve mais de uma interface separada. Para cada interface adicional herdada, a classe resultante pode ser legitimamente usada como uma instância de cada uma. Se uma classe herdada de dez interfaces diferentes, os objetos dessa classe poderiam ser usados como uma instância de onze objetos diferentes, incluindo a própria.
Essa herança complexa nem sempre é necessária. A herança de interface é usada para garantir que uma classe tenha um conjunto específico de comportamentos necessários, e esses comportamentos permitem executar uma variedade de funções que, de outra forma, não poderiam ser executadas. Um exemplo comum disso é a interface ActionListener em Java, que requer que uma classe implemente apenas um método específico. A implementação bem-sucedida desse método permite que um usuário controle botões, itens de menu ou qualquer outro objeto de janela na classe, se desejar. A herança de interface é uma maneira relativamente simples de adicionar funcionalidades complexas a uma classe sem se preocupar com os problemas de herança mais complicados.
Uma das maiores vantagens de usar a herança de interface é que ela permite que objetos específicos sejam usados em um sentido genérico. Como uma classe que implementa uma interface é uma instância dessa interface, ela pode ser usada em qualquer lugar em que uma instância dessa interface seja necessária. Por exemplo, se a classe A implementa a classe C e a classe B também implementa a classe C, se um método usa como parâmetro uma instância da classe C, uma instância da classe A ou uma instância da classe B seria um parâmetro aceitável para uso . As interfaces não podem ser instanciadas sozinhas porque não estão completas; portanto, nunca haveria um objeto que fosse puramente uma instância da classe C como parâmetro.