Laurent For�t wrote:

Je vais y r�fl�chir avant de r�pondre ;) !

Apr�s quelques minutes, j'ai �crit le code suivant :

public static void main(String[] args) {
   ClassUsingStatic myObj = new OtherClassUsingStatic();
   myObj.staticMethod();
}

Et, quelle fut ma surprise de voir en effet, dans ma console le r�sultat
suivant :
In StaticClass.staticMethod()

et je n'avais pas de "In OtherClassUsingStatic.staticMethod()".
Il ne semble donc pas possible de faire du polymorphisme avec des m�thodes
statiques. Mais, je ne comprend pas pourquoi. Une explication ?

Parce que l'instance n'est pas utilisee pour resoudre l'appel, uniquement sa classe.

C'est pourquoi il est recommande pour les methodes statiques d'utiliser le nom de la classe plutot qu'une instance:

StaticClass.staticMethod(); // Oui
myObj.staticMethod(); // Non

--
C�dric
http://beust.com/weblog


Répondre à