Ceci est une ancienne révision du document !
Création d'une Class ou d'un Object
Les modificateurs
virtual
virtual
signifie que la méthode peut être redéfinie/écrasée dans une classe dérivée.
virtual
ne peut pas être utilisé avec dynamic
et static
.
dynamic
dynamic
signifie la même chose que virtual
.
La différence est que contrairement aux membres virtual
dont les adresses sont stockés dans une table,
les membres dynamic
n'utilisent pas de tables et n'occupent pas de mémoire vive,
mais leur mécanisme de résolution est plus lent.
dynamic
ne peut pas être utilisé avec virtual
et static
.
static
Une méthode ou une variable static
est commune à toutes les instances de la classe ;
Une instance de la classe peut écrire un membre de variable statique et toutes les autres instances conserveront (et liront, en cas d'accès) la nouvelle valeur.
Pour cette raison, le compilateur ne transmet PAS le paramètre self
aux méthodes statiques : ce serait un non-sens.
Les méthodes static
ne peuvent pas être virtual
ou dynamic
.
override
Une méthode marquée override
cache une méthode virtual
ou dynamic
.
Une classe dérivée peut implémenter sa propre version d'une méthode virtual
,
mais la méthode de base est toujours disponible.
Ceci est également vrai pour les méthodes dynamic
.
Cependant, vous ne pouvez pas remplacer une méthode si elle n'est pas virtual
ou dynamic
.