Heritage et surcharge : comment faire ?
J’ai une classe de base Usinage et plusieurs classes dérivées UPercage, UPercageF, …
Je souhaite définir dans chaque classe dérivée une procédure « ImporterFPD » ayant chacune différents paramètres ; j’y suis arrivé mais la façon dont je m’y prends ne me plait pas :
Le soucis c’est que lorsque je tape le code, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Public MustInherit Class Usinage Protected X As Double Protected Y As Double ... ... Public Overridable Sub ImporterFPD(posX As Double, posY As Double, tailleD As Double) End Sub Public Overridable Sub ImporterFPD(posX As Double, posY As Double, tailleD As Double, tailleDF As Double, FaceAV As Boolean) End Sub ... End Class Public Class UPercage : Inherits Usinage Protected Diam As Double ... ... Public Overrides Sub ImporterFPD(posX As Double, posY As Double, tailleD As Double) X = posX Y = posY Diam = tailleD End Sub End Class Public Class UPercageF : Inherits Usinage Protected Diam As Double Protected DiamF As Double Protected FaceAvant As Boolean ... ... Public Overrides Sub ImporterFPD(posX As Double, posY As Double, tailleD As Double, tailleDF As Double, FaceAV As Boolean) X = posX Y = posY Diam = tailleD DiamF = tailleDF FaceAvant = FaceAV End Sub End Class
Il m’autorise à appeler une version de ImporterFPD() qui n’ pas de sens (la dernière ligne de mon exemple)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim usi As Usinage usi = New UPercage Call usi.ImporterFPD(50, 60, 3) usi = New UPercageF Call usi.ImporterFPD(50, 60, 3, 4, True) Call usi.ImporterFPD(50, 60, 3) 'Cette ligne n'est pas logique
En fait au départ je voulais faire ça mais ça ne fonctionne pas :
Comment dois-je m’y prendre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Public MustInherit Class Usinage Protected X As Double Protected Y As Double ... ... End Class Public Class UPercage : Inherits Usinage Protected Diam As Double ... ... Public Sub ImporterFPD(posX As Double, posY As Double, tailleD As Double) X = posX Y = posY Diam = tailleD End Sub End Class Public Class UPercageF : Inherits Usinage Protected Diam As Double Protected DiamF As Double Protected FaceAvant As Boolean ... ... Public Sub ImporterFPD(posX As Double, posY As Double, tailleD As Double, tailleDF As Double, FaceAV As Boolean) X = posX Y = posY Diam = tailleD DiamF = tailleDF FaceAvant = FaceAV End Sub End Class
J’ai examiné la documentation VB sur les mots clefs Shadows, Overloads, Overrides,Overridable, MustOverrides, … et fait différents essais mais sans succès.
Partager