Assim so para facilitar… sempre no inicio dos estudo tente associar, a teoria de OO com o mundo real(até pq é isso que “acontece”) uma interface é algo abstrato tipo veiculo, o que é um veiculo? um carro é-um veiculo, caminhão é-um veiculo, onibus etc.
Então podemos dizer que eu tenho uma interface veiculo certo? Ai vc agora vai desenvolver um sistema para uma industria de automoveis, que fabrica carro, onibus etc… então como vc um bom programador de OO, nao faz querer para cada linha de produção de engenheria ter um modulo especifico na hora de montar o veiculo ne? Então vc faz o seguinte: Cria uma interface Veiculo com os atributos abaixo:
interface Veiculo{
void cor();
void numPortas(int z);
void dataFabricacao();
}
qualquer veiculo que vc produzir vai ter essas caracteristas… nao importa se é um onibus, um caminhao etc… ele vai ter uma cor, o numero de portas e a data de fabricacao certo?
Então vc nao vai querer fazer para cada departamento, o mesmo modulo varias vezes… ai vc cria essa interface… e apenas cada departamento de produção implementa essa interface e pronto olha como fica.
class DeptoCarro implements Veiculo{
/* aqui as implementacoes do metodo*/
}
class DeptoOnibus implements Veiculo{
/* aqui as implementacoes do metodo*/
}
percebeu a essencia de interfaces? vc programa uma unica vez… e nao vai precisar fazendo copie -cole no mesmo codigo… e quando mudar em um tem q sair mudando em outros locais… tb, é outro beneficio…
espero ter ajuado!
flw! qualquer duvida tamos ai 