Jean-Baptiste BRIAUD wrote:
Oui, c'est "normal".
Les m�thode static sont "statique" ;-)
elles ne sont pas r�solues dynamiquement.
Il n'y a donc pas de red�finition possible, pas de polymorphisme.
Une m�thode statique est une m�thode de classe, pas une m�thode
d'instance.
Voui voui, �a j'ai bien compris. Quand on l'appelle depuis A, c'est celle de A qu'on obtient et non pas celle de B. C'est clair, bien que surprenant au d�but quand on est habitu� � l'h�ritage classique o� on modifie un comportement h�rit� de A, non pas en �crasant la m�thode elle-m�me, mais une autre qui est appel�e depuis A. Avec des statiques, �a ne marche pas comme �a. Mais je comprends que ce m�canisme puisse avoir �galement son int�r�t.

Pour aller plus loin, pourquoi method() devait-elle etre static ?
Parceque je voulais l'appeler pour d�finir des variables statiques dans B, pas commodes � d�finir explicitement (et c'est + lisible aussi de les d�finir comme des r�sultats de m�thodes statiques sur des statiques de base). Maintenant il y a toute une s�rie de m�thodes qui ne peuvent plus �tre statiques alors qu'elles le sont clairement par essence. Mais bon, je vais survivre.


Christian Mercat






Répondre à