OVH Cloud OVH Cloud

Heritage de class

1 réponse
Avatar
Sébastien
Bonjour,

j'ai un petit probleme qui n'en est pas vraiment un,
mais bon sa m'embete que sa ne fasse exactement pas ce que je veux.

Donc je presente mon probleme,

NameSpace MesClass

Private Class A
'on creer des property
End Class

public Class B
Inherits A
End Class

End NameSpace

ce que je cherche a fair c'est que la class A ne soit pas vue en dehor de
l'espace de nom, mais que l'on puissent ce servire de la class B en dehor de
l'espace de nom.

et si je declare la class A en private il me met un message d'erreur ...

est ce que qq connais une astuce ? ou cela n'es pas trop normaliser de
chercher a fair ce que je veux fair ?

merci,
Sebastien

1 réponse

Avatar
Sébastien
Merci, je vais alors la laisser public ... ;-)
sebastien

"David Scime" a écrit dans le message de
news:
David Scime a écrit :
> Sébastien a écrit :
>
>> Bonjour,
>>
>> j'ai un petit probleme qui n'en est pas vraiment un,
>> mais bon sa m'embete que sa ne fasse exactement pas ce que je veux.
>>
>> Donc je presente mon probleme,
>>
>> NameSpace MesClass
>>
>> Private Class A
>> 'on creer des property
>> End Class
>>
>> public Class B
>> Inherits A
>> End Class
>>
>> End NameSpace
>>
>> ce que je cherche a fair c'est que la class A ne soit pas vue en dehor


de
>> l'espace de nom, mais que l'on puissent ce servire de la class B en
>> dehor de
>> l'espace de nom.
>>
>> et si je declare la class A en private il me met un message d'erreur


...
>>
>> est ce que qq connais une astuce ? ou cela n'es pas trop normaliser de
>> chercher a fair ce que je veux fair ?
>>
>> merci,
>> Sebastien
>>
>>
>
> Pour ce qui est de créer une classe de portée private, celà n'est
> possible qu'à l'intérieur d'une autre classe.. Car il n'y a aucun sens
> vu qu'elle serait inexploitable. Malheureusement une classe B ne peut
> hériter d'une classe A de portée privée même si celle-ci est déclarée au
> sein de la classe B..
> Je ne vois donc (personnellement..) de solution..
> Ce que tu peux faire c'est déclarer ta classe A "MustInherit" ce qui
> veut dire qu'elle ne peut être que le socle de base à la création d'une
> nouvelle classe et que donc elle ne peut pas être instanciée


directement..
>
> David Scime

Il est logique qu'une classe de portée publique ne peut hériter d'une de
portée privé car cela reviendrait au même que de rendre ta classe privé
publique.. C'est une violation des rêgles de porté..
Bon courage..

David Scime