Palavra-chave default em Java

A palavra-chave default em Java é usada em dois contextos principais: em interfaces e em blocos de inicialização.

1. Métodos default em Interfaces

Desde o Java 8, a palavra-chave default pode ser usada para definir métodos com uma implementação padrão dentro de interfaces. Isso permite que interfaces forneçam métodos com um corpo, o que era anteriormente impossível.

Uso e Exemplo:

Definição: Métodos default são usados para adicionar funcionalidades novas a interfaces sem quebrar as implementações existentes.

public interface MinhaInterface {
    // Método padrão
    default void metodoPadrao() {
        System.out.println("Este é um método padrão.");
    }

    // Método abstrato
    void metodoAbstrato();
}

public class Implementacao implements MinhaInterface {
    @Override
    public void metodoAbstrato() {
        System.out.println("Implementando o método abstrato.");
    }

    // O métodoPadrao pode ser usado sem a necessidade de sobrescrever
}

public class Teste {
    public static void main(String[] args) {
        Implementacao obj = new Implementacao();
        obj.metodoPadrao();       // Usa a implementação padrão da interface
        obj.metodoAbstrato();     // Implementado na classe
    }
}

Neste exemplo, metodoPadrao tem uma implementação padrão fornecida pela interface MinhaInterface. A classe Implementacao não precisa fornecer sua própria implementação para esse método, mas deve implementar o método abstrato metodoAbstrato.

2. Blocos default em Inicialização

A palavra-chave default também pode ser usada em blocos switch para indicar um caso padrão que será executado se nenhum dos casos anteriores corresponder ao valor.

Uso e Exemplo:

Definição: O bloco default em uma estrutura switch especifica o código a ser executado quando nenhum dos outros casos corresponde.

public class ExemploSwitch {
    public static void main(String[] args) {
        int numero = 2;

        switch (numero) {
            case 1:
                System.out.println("Número é 1");
                break;
            case 2:
                System.out.println("Número é 2");
                break;
            default:
                System.out.println("Número não é 1 nem 2");
                break;
        }
    }
}

Neste exemplo, o bloco default será executado se o valor de numero não corresponder a nenhum dos casos (1 ou 2). Se numero fosse diferente de 1 ou 2, a saída seria “Número não é 1 nem 2”.

Resumo

  • Métodos default em Interfaces: Permitem fornecer uma implementação padrão para métodos em interfaces, ajudando a evoluir interfaces sem quebrar implementações existentes.
  • Bloco default em switch: Define um caso padrão que é executado quando nenhum dos outros casos no switch corresponde ao valor testado.

Essas funcionalidades proporcionam flexibilidade e melhorias na linguagem Java, facilitando a manutenção e evolução de código.