Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Extends vs Implements: qual a diferença?

O que eu sempre leio na internet é "com o Implements vc implementa uma Interface e com o Extends vc extende uma classe"... Mas aí continuo sem entender nada...

Vejam se eu entendi: se eu quero herdar um método, sem precisar sobrescrever, uso o extends e uma classe-mãe. Se eu precisar sobrescrever os métodos, uso o implements e uma interface.

É isso? Com o extends não consigo sobrescrever né?

1 resposta

A diferença entre uma interface e uma classe é que em uma interface você não pode implementar nenhum dos métodos declarados. Apenas a classe que "implements" a interface pode implementar os métodos.

Além disso, o java não oferece suporte a herança múltipla para classes. Porém é possível implementar várias interfaces ao mesmo tempo.

No caso das interfaces, a anotação @Override não é necessária para implementar uma interface, já que não há nada nos métodos da interface original a ser substituído.