Fiquei com um pouco de dúvida no que é exatamente um Default Method e a sua diferença de uma classe Abstrata.
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!
Fiquei com um pouco de dúvida no que é exatamente um Default Method e a sua diferença de uma classe Abstrata.
Olá Davi,
Vamos por partes.
Falando de classes abstratas, elas são classes que podem possuir atributos e métodos concretos (com implementação), assim como qualquer outra classe. Além disso, elas podem possuir métodos abstratos (sem implementação) e não podem ser instanciadas.
Agora pensando em interfaces, até antes do java 8, elas podiam ter apenas métodos abstratos (sem implementação). Não era possível escrever um método concreto (com implementação) em uma interface.
O Default Method é um recurso disponível do java 8 pra frente, que permite que a gente escreva a implementação padrão para o método de uma interface.
Isto quer dizer que, quando implementarmos a interface, não seremos obrigados a implementar esses métodos default, pois eles já vem com uma implementação de "fábrica".
Quando colocamos a palavra chave default na declaração do método em uma interface, dizemos que ele será um default method e fornecemos sua implementação, ali mesmo na interface.