FINAL
Não Herdada // Não Sobrescrito

A classe não pode ser herdada ou estendida por outra classe, e nenhum de seus métodos poderão ser sobrescritos.
Obs: a palavra-chave final pode ser combinada com qualquer modificador de acesso, ou seja, uma classe pode ter acesso default ou público e ser também marcada como final.


package bebida;
public final class Refrigerante{  
//pública e final          
}

package bebida.brasil;
import bebida.Refrigerante;
/* erro de compilação - a classe Coca não pode herdar
 * de Refrigerante pq esta está marcada como final */
public class Coca extends Refrigerante { 
}


Classe final: impede que a classe seja herdada.
Método final: impede um método de ser sobrescrito em uma subclasse.

Argumento final: valor não poderá ser modificado dentro do método.

Nesse caso, “modificado” significa a retribuição de um novo valor à variável, ou seja, o argumento final deve manter o mesmo valor que o parâmetro tinha quando foi passado para o método até o final.

public class Argumentos {
      public void setArg(String obj1,
                         final String obj2) {
            String obj3 = new String();
            obj1 = obj3;
            /* erro, argumentos final não podem ter
             * um novo valor reatribuído */
            obj2 = new String();
            /* erro, argumentos final não podem ser
             * modificados */
            obj2 = obj3;          
      } 
}



Deixe um comentário