Comecei a estudar interfaces a pouco tempo entendi o basico ja. Mas esse tipo de coisa não saquei:
public interface Animal{
public void respira();
}
public class Cachoro implements Animal{
public void respira(){
System.out.println("Ta respirando porra");
}
}
public class Coelho{
}
public class Progama{
public static void main(String[] args){
Animal x = new Coelho();
x.respira();
}
}
Alguem pode me explicar?
O que é que você não entendeu exatamente? Há muito material por aí explicando esse e outros conceitos, você já deu uma lida?
Uma interface especifica um contrato. E o que o contrato faz? Diz o que a classe deve fazer, que métodos deve implementar. Nesse caso, ao dizer que vai seguir o contrato chamado Animal (implements Animal), a classe Cachorro é obrigada a seguir esse contrato e, por isso, tem que implementar o método especificado no contrato, chamado respira() . Se houvessem mais métodos na interface Animal, a classe Cachorro teria de implementar todos.
Note que o contrato/interface não diz o que o método respira pode fazer internamente ( na classe Cachorro, dentro do método respira, podemos colocar qualquer código), apenas diz que esse método precisa existir e que não precisa retornar nada (void).
Recomendo a leitura:
Abraço.
1 curtida