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