• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

Interfaces no Java 8 – default methods

December 18, 2017 by Mauda Leave a Comment

Conteúdo do Post:
  1. Métodos com implementação, agora pode!
  2. finnaly{

Olá Pessoal, tudo bom? Voltando de um longo inverno…

Em junho de 2016 escrevi um artigo sobre interfaces. Esse artigo se propõe a inserir um novo aspecto que foi inserido no tipo interface no Java 8. Confira na continuação.

Métodos com implementação, agora pode!

Se você é um desenvolvedor antes do Java 8, sabe que os métodos em uma interface não podiam possuir uma implementação. Vamos ver como era com o código abaixo:

Java
1
2
3
4
5
public interface AcessoSistema {
    
    boolean possuiAcessoAdministrador();
    
}

Vamos pensar em uma classe Java que implemente essa interface:

Java
1
2
3
4
5
6
7
8
9
10
11
public class UsuarioAdministrador implements AcessoSistema {
 
    //Algum código aqui
    
    public boolean possuiAcessoAdministrador(){
        return Credencial.getInstance().isAdministrador();
    }
    
    //Algum código aqui
    
}

Vamos pensar em outra classe Java que implemente essa interface:

Java
1
2
3
4
5
6
7
8
9
10
11
public class UsuarioGerente implements AcessoSistema {
 
    //Algum código aqui
    
    public boolean possuiAcessoAdministrador(){
        return Credencial.getInstance().isAdministrador();
    }
    
    //Algum código aqui
    
}

Notou o problema?

Todas as classes que implementavam a interface podiam possuir a mesma implementação do método. Com o advento do Java 8 foi criado os default methods. Ou seja, são implementações padrão de um método, assim se a classe que implementa a sua interface concorda com essa implementação, não é necessário reimplementar esse método.

Vamos ver como ficou essa nova característica aplicada a interface AcessoSistema:

Java
1
2
3
4
5
6
7
public interface AcessoSistema {
    
    default boolean possuiAcessoAdministrador(){
        return Credencial.getInstance().isAdministrador();
    }
    
}

Se as condições abaixo forem satisfeitas é possível utilizar essa nova característica:

  • Inserir a palavra reservada default na frente do método.
  • Criar a implementação do método, respeitando o tipo de retorno (como em um método convencional)

Pronto!

Agora o código de uma das classes que implementam a interface ficou assim:

Java
1
2
3
4
5
public class UsuarioAdministrador implements AcessoSistema {
 
    //Algum código aqui
    
}

finnaly{

Isso é muito interessante para reuso de código, evitando erros e removendo linhas duplicadas em seu código.

E outro aspecto muito interessante é que passamos a ter “herança múltipla” no Java, mas isso fica para uma outra hora.

Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!

Até um próximo post que espero agora estar retornando ao original de 1 post toda segunda feira!

Filed Under: Java, JDK 8 Tagged With: default methods, implementação, interface, Java 8

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2025 · Genesis Framework · WordPress · Log in