Title: RES: [java-list] Certificacao BETA
Quando o método é sobrescrito, vc perde a implementação do método anterior. No exemplo do José vc pode acessar os 2 métodos chamando MyTest.myStat() ou Test.myStat()
----- Original Message -----
Sent: Tuesday, May 28, 2002 5:20 PM
Subject: Re: RES: [java-list] Dúvida questão de Certificacao?

Aproveitando a onda, apenas não peguei uma coisa ainda, por exemplo, em termos de código, não vi diferença (não diretamente pelo menos) entre o metodo hidden e um outro static qualquer, digo, mesmo que o método não fosse declarado na subclasse, a chamada se manteria igual, então minha dúvida é, em que consiste exatamente "esconder" um método e porque eu poderia fazer isso?

Grato

Carlos

Jose Ferreira de Souza Filho wrote:
21B38BA50352D411A0580004ACEB3E487E8C13@GYNSERV004 type="cite">
Cristiano,
 
                até concordo com o seu ponto de vista, até já tive essa mesma dúvida. Mas a SUN diz o seqguinte:
 
"You cannot override a static method but you can hide it" , ou seja, todas as vezes que falarem sobre métodos estáticos, assuma que eles não podem ser sobreescritos, mas escondidos, dê uma olhada neste exemplo:
 
 

class MyTest {

   public void myTest() {
         System.out.println("Printing myTest in MyTest class");
   }

   public static void myStat() {   // método estático na superclasse
         System.out.println("Printing myStat in MyTest class");

   }
}

public class Test extends MyTest {

    public void myTest() {
         System.out.println("Printing myTest in Test class");
   }

   public static void myStat() {  // método estático na subclasse
         System.out.println("Printing myStat in Test class");

   }

   public static void main ( String args[] ) {

       MyTest mt = new Test();
       mt.myTest();
       mt.myStat();
   }

Aparentemente parece que houve uma sobreescrita, mas não houve se vc executar este programa vc verá seguinte saída...

"Printing myTest in Test class followed by Printing myStat in MyTest class "

e não "Printing myTest in Test class followed by Printing myStat in Test class " , pq na verdade o método foi escondido (hidden) e não sobreescrito (overriden).

 Lembre -se do seguinte:

"You cannot override a static method but you can hide it"

 

Espero tê-lo ajudado...

-- 
/**
 * [Carlos H.] - [EMAIL PROTECTED]
 * Núcleo de Informática UNERJ - Centro Universitário de Jaraguá do Sul
 * 
 * Impossível é apenas um sinônimo de Desconhecido.
 */

Responder a