As interfaces em Java é uma forma de contrato, que a classe ao assinar, tem a responsabilidade de implementar os seus métodos.
Exemplos:
public interface CarroTurbo { void ligarTurbo(); void desligarTurbo(); }
Essa é a nossa interface, a classe que implementa-lá também será um "CarroTurbo" , já que obrigatoriamente deverá implementar seus métodos.
public class CarroPasseio implements CarroTurbo{ int velocidade; String marca; @Override public void ligarTurbo() { //aumentar a velocidade } @Override public void desligarTurbo() { //diminuir a velocidade } }
A classe "CarroPasseio" implementar "CarroTurbo".
public class CarroDeCorrida implements CarroTurbo{ int velocidade; String marca; @Override public void ligarTurbo() { //aumentar a velocidade } @Override public void desligarTurbo() { //diminuir a velocidade } }
A classe "CarroDeCorrida" implementar "CarroTurbo".
public class Corrida { public void poderCorrer(CarroTurbo carroTurbo){ carroTurbo.ligarTurbo(); carroTurbo.desligarTurbo(); } }
A classe "Corrida" possui o método "poderCorrer" que aceita um "CarroTurbo" , assim qualquer classe que implementar "CarroTurbo", poderá ser utilizado no método, tendo a garantia que o "contrato foi efetuado" e possui os métodos para "ligarTurbo" e "desligarTurbo".
Diagrama de classe:

Código fonte no GitHub:
https://github.com/franciscojsc/interface_em_java
Post Original
https://franciscojava.wordpress.com/2017/02/14/interfaces-em-java