Qual o principal objetivo da mesma ? :shock: :shock:
Pelo que entendi seria:
Em subclasses de Pais diferentes que aplicam a mesma interface utilizármos um mesmo método que seria escolhido pelo compilador em tempo de execução, sem claro criar um vínculo entre as classes ou duplicar código, seria isso mesmo? :? :? :? :? :?
São duas coisas distintas interface e polimorfismo - embora parentes.
Polimorfismo é a capacidade de uma mesma chamada a X() chamar diferentes métodos em tempo de execução. Por exemplo, vc tem a classe A e B. Ambas tem um método chamado ‘novoMetodo()’
Object misterio = new A();
misterio.novoMetodo(); // chama novoMetodo de A
misterio = new B();
misterio.novoMetodo(); //chama novoMetodo de B
As linguagens OO possuem facilidades para garantir o polimorfismo.
Interface é uma espécie de ‘gabarito’; quando uma classe implementa uma interface, vc GARANTE que a classe contém TODOS os métodos que estão ditos na interface.
Exemplo, eu crio uma interface I que definem os métodos X, Y e Z. Sempre que uma classe implementar a interface I, ela OBRIGATORIAMENTE tem que implementar os métodos X, Y e Z.
Uma interface garante o polimorfismo das classes que o implementam. Isto é, não vai ter erro em tempo de execução porque um maluco que esqueceu de implementar o método.
Uma outra maneira de garantir o polimorfismo é por meio de herança.
Bem no fim das contas, estender uma classe ou implementar uma interface dá quase na mesma…