Classes abstratas e "this"

3 respostas
B

Olá pessoal,

fiquei com uma dúvida aqui :
Classes abstratas nunca são instanciadas certo?
Então por que eu posso usar a referência this para atributos e métodos desta classe abstrata ? O this faz referência ao objeto já instanciado ou não é bem assim ?

abstract class Funcionario {
     protected double salario;

     public double getBonificacao() {
          return this.salario*1.2; /* Aqui é a minha dúvida: se a classe nunca vai ser instanciada, como posso usar o this ?? */
     }
}

Vlw

3 Respostas

Fabricio_Cozer_Marti

bruno_nunes:
Olá pessoal,

fiquei com uma dúvida aqui :
Classes abstratas nunca são instanciadas certo?


Diretamente não, necessitam de uma classe concreta para existirem.

o this faz referência ao objeto ( que por ventura existirá, através de uma instância realizada por alguma classe concreta ), e acesso métodos e atributos da própria classe.

nesse caso, quando a classe Funcionario for instanciada através de outra classe, o this.salario vai fazer referência ao salario da classe abstrata Funcionario.

PS.: Você não pode dar um new Funcionario(); mas pode fazer por exemplo:
Empregado empregado = new Empregado();
sendo que Empregado extends Funcionario.

B

Ahh rpz…
Então quando eu declaro uma classe como abstrata espera-se que ela tenha classes filhas concretas para que o this faça sentido né isso ?

Valeu pela ajuda.

Fabricio_Cozer_Marti

bruno_nunes:
Ahh rpz…
Então quando eu declaro uma classe como abstrata espera-se que ela tenha classes filhas concretas para que o this faça sentido né isso ?

Valeu pela ajuda.


Perfeito! :smiley:

Criado 8 de junho de 2006
Ultima resposta 8 de jun. de 2006
Respostas 3
Participantes 2