Modificadores Não Referentes a Acesso

Métodos Final

A palavra final impede que um método possa ser substituído em uma subclasse, e frequentemente é usada para forçar os recursos API de um método.

Exemplo:

class SuperClass {

public final void carro(){

        System.out.println(“Meu primeiro carro!”);

}

}

Você pode estender a SuperClass mais não pode substituir o método carro(), o exemplo abaixo vai gerar um erro de compilação:

Exemplo:

class SubClass extends SuperClass(){

public void carro(){

   System.out.println(“novo carro!”);

}

}

Argumento Final

public Carro getCarrro(int numeroPortas, final int numeroRodas){}

No exemplo acima, a variável numeroRodas é declarada como final, o que significa que ela não poderá ser modificada dentro do método, ou seja ela não poderá ter seu valor modificado dentro do método.

Métodos Abstratos

Um método abstrato é um método que foi declarado como abstract mais não implementado, ou seja, ele não possui corpo, ao seu final coloca-se ponto e virgula.

public abstract void carro();

É inválido ter um único método abstract que seja em uma classe que não seja declarado explicitamente como abstract. Três dicas diferentes lhe dizem que se não se trata de um método abstrato.

  • O método não está marcado como abstract;
  • A declaração de um método possui chaves;
  • O método possui código de implementação;

A primeira subclasse concreta de uma classe abstrata deve implementar todos os métodos abstratos da superclasse. Concreto significa apenas não – abstrato, então, se você tiver uma classe abstrata estendendo outra classe abstrata a subclasse abstrata não precisa formar implementações para os métodos abstract herdados.

Um método não pode nunca, jamais ser marcado como abstract e final ao mesmo tempo, nem como abstract e private ao mesmo tempo. Os métodos abstract precisam ser implementados, enquanto que métodos final e private não podem jamais serem substituídos por uma subclasse. Os modificadores abstract e final são praticamente opostos.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s