Classe Anônima

2 respostas
DHS
class GuardaChuva{

   public void guardar(){
      
     System.out.println("guarda chuva");
   }//fim método guardar

}//fim classe GuardaChuva



class Acessorio{
   
    GuardaChuva gc = new GuardaChuva{
    
        public void molhar(){
        
           System.out.println("guardachuva molhado anonimo");
        }//fim método molhar

        public void guardar(){
        

           System.out.println("guardachuva anonimo");
        }//fim do método guardar

    };//fim da classe anônima

}//fim classe Acessório
class TesteGuardaChuva{
    
    public static void main(String [] args){
    
       GuardaChuva gc = new GuardaChuva();
       Acessorio ac = new Acessorio();
       
      gc.guardar();//é executado normalmente
      ac.gc.guardar();//é executado normalmente
      ac.gc.molhar();//não executa, eu entendo que não seja um método de guarda chuva
      ac.molhar();// tentei dessa forma... mas também não produz nenhum resultado
      

    }//fim main

}//fim classe TesteGuardaChuva

Minha dúvida é se eu posso ter um método na classe anônima que não sobrescreva a super-classe. Por exemplo, neste caso, molhar é legível?
E se sim, como executá-lo
Agradeço

2 Respostas

ViniGodoy

Você só vai conseguir executar esse método extra através de reflexão.

M

Pois esse método não é definido na classe GuardaChuva. Como a variável de referência é do tipo GuardaChuva somente os métodos lá definidos são acessíveis (sem usar reflexão, claro).

Criado 19 de abril de 2010
Ultima resposta 19 de abr. de 2010
Respostas 2
Participantes 3