Title: RES: [java-list] Certificacao BETA
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...

Responder a