Événements et héritage
Lorsque vous créez un composant général qui peut être dérivé, le problème apparent survient parfois avec les événements. Dans la mesure où les événements peuvent être appelés uniquement à partir de la classe qui les a déclarés, les classes dérivées ne peuvent pas appeler directement les événements déclarés dans la classe de base. Bien que cela soit parfois le but recherché, il est souvent souhaitable d'accorder à la classe dérivée la liberté d'appeler l'événement, le plus souvent, en créant une méthode d'appel protégée pour l'événement. Les classes dérivées, en appelant cette méthode d'appel, peuvent appeler l'événement. Pour obtenir une souplesse encore plus grande, la méthode d'appel est souvent déclarée comme virtuelle, ce qui permet à la classe dérivée de la substituer. La classe dérivée peut ainsi intercepter les événements appelés par la classe de base, éventuellement en les traitant à sa façon.
Dans l'exemple précédent, cela a été fait avec la méthode OnChanged. Une classe dérivée pourrait appeler ou se substituer à cette méthode si cela était nécessaire.
Partager