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 :

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
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
        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
Il m’autorise à appeler une version de ImporterFPD() qui n’ pas de sens (la dernière ligne de mon exemple)

En fait au départ je voulais faire ça mais ça ne fonctionne pas :

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
Comment dois-je m’y prendre ?

J’ai examiné la documentation VB sur les mots clefs Shadows, Overloads, Overrides,Overridable, MustOverrides, … et fait différents essais mais sans succès.