Interfaces em Java || Classes Mandantes? XD

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

Aprenda tudo sobre interfaces e polimorfismo aqui - https://for-j.myedools.com/jse-polimorfismo
Veja aula grátis - https://fernandofranzini.wordpress.com/2016/10/26/for-j-ead-aula-gratis-interfaces-java/

1 curtida