Héritage de classe (commune et spécifique)

cs_JET SET Messages postés 2 Date d'inscription lundi 25 juillet 2005 Statut Membre Dernière intervention 22 août 2008 - 22 août 2008 à 16:11
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 - 22 août 2008 à 21:41
J'utilise une classe interrupteur qui dessine les parties communes à un interrupteur bouton et à un interrupteur inductif.
Ensuite je crée une classe interrupteur :
                    - bouton qui hérite de la classe interrupteur
                    - inductif qui hérite de la classe interrupteur
Ces deux classes dessinent les spécificités propres à ces deux types d'interrupteurs.

Par contre j'aimerais n'utiliser que les classes interrupteurs bouton ou interrupteurs inductif pour dessiner l'ensemble de mon interrupteur (parties communes + parties spécifiques)
Malheureusement si je déclare :     DIm Test As New Interrupteur
                je dois définir Test.Draw (de la classe commune) mais aussi Test.Draw2 (de la classe spécifique)
Mon but est de n'utiliser que la classe spécifique qui devrait dessiner la classe commune...comment faire ?
Merci de votre aide.

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
22 août 2008 à 18:49
Salut

Il faut declarer la classe interrupteur abstraite (abstract c#) soit MustInherit en vb.net

Virtual (C#) == Overrideable (VB)

http://msdn.microsoft.com/fr-fr/library/aee8f02w(VS.80).aspx

Bon coding
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
22 août 2008 à 21:41
Salut,
C'est quoi Test.Draw? On est bien en .NET là?

Ton bouton tu le dessine dans l'événement Paint du contrôle normalement.
Dans ta classe de base, tu déclare une procédure Protected pour dessiner tes parties communes et tu l'appel depuis l'événement Paint:
Private Sub Control_Paint(...) Handles Me.Paint
    DrawCommonButton(e.Graphics)
End Sub
Protected Sub DrawCommonButton(Graphics As Graphics)
    ' Ici, tu dessine les parties communes
End Sub
Et dans tes classes dérivés, suffit alors de faire un appel à la procédure DrawCommonButton de la classe de base :
Private Sub Control_Paint(...) Handles Me.Paint
    ' Dessiner les partie communes en appelant DrawCommonButton
    DrawCommonButton(e.Graphics)
    ' Puis tu dessine les parties spécifiques
End Sub

Une procédure déclaré Protected est accessible depuis les classes dérivé.
0
Rejoignez-nous