Bonjour, j'aimerais savoir ce qui différencie ces 3 termes :
Friend, protected, protected friend
Merci
Bonjour, j'aimerais savoir ce qui différencie ces 3 termes :
Friend, protected, protected friend
Merci
Je pense que cela est écrit dans n'importe quel cours de VB![]()
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Et oui va voir la :
http://aspic.developpez.com (rubrique cours)
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+
+
=
Ne pas oublier le Tag!
Bonjour,
Je souhaiterais relancer le sujet
Voici mon problème.
J'ai déclaré une propriété dans une classe "Personnage" :
Ensuite j'ai crée une classe Magicien qui hérite de Personnages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Protected m_vie As Integer
Dans la classe Magicien, j'ai une méthode qui fait :
Mais ça ne marche pas. VB me dit en gros que Cible.m_vie n'est pas accessible..visibilité... Par contre si on déclare la Cible comme un magicien ça marche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Sub LancerSort(ByRef Cible As Personnages) Cible.m_vie -= m_Sort.Degat End Sub
Ca marche aussi si l'on déclare :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Sub LancerSort(ByRef Cible As Magicien) Cible.m_vie -= m_Sort.Degat End Sub
et en laissant Personnage comme paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Friend m_vie As Integer
Pourtant dans ce que j'ai pu lire dans les cours, "Protected" devrait permettre l'accès depuis les classes héritées non? Apparemment, avec protected comme visibilité, l'attribut d'une classe parente déclarée en "Protected" ne semble pas accessible depuis la classe fille...
Peut-être qu'il faut se dire que Personnage n'est pas un Magicien ou un truc du genre.
Autre chose, la visibilité Friend signifie en gros "vue dans tout le projet" (j'ai bon la?). J'ai fait quelques essaies et ça semble coller. Alors "Friend" englobe largement le "Protected" d'un point de vue visibilité.
Alors question : Qu'apporte le "Protected Friend" par rapport au "Friend" ?
Merci de m'éclaircir.
cdt.
Bonsoir,
Il faut vraiment revoir tes cours de POO :
Friend : L'accès à la classe est limité au projet dans lequel elle est définie !
Protected : https://www.developpez.net/forums/d1...public-static/
Bonne lecture et A+
En complément de ce que peuvent t'apporter les liens donnés par nos camarades :
Ton exemple ne fonctionnait pas, car tu essayais d'attendre un membre privé de Personnage. Car si Protected permet de partager une propriété avec les héritiers, il n'en fait pas pour autant un attribut publique. Sinon il n'y aurait pas eu besoin de le déclarer Protected !
Ce sont deux choses très différentes. Friend indique juste que l'élément ne sera pas visible en dehors de l'assemblie (du projet, de la dll). Ce qui veux dire que tu peux hériter d'une classe d'une autre assemblie et accéder à son membre Protected si celui-ci n'est pas déclaré Friend Protected.
Merci pour les infos. Pour le Friend je commence à voir le truc par contre le protected....J'ai du mal.
Imaginons la configuration suivante :
Pour moi, l'intérêt du "protected" c'est de pouvoir accéder à Vie de Personnage et Magicien depuis Personnage ou Magicien mais pas depuis Ogre ou Bête.
Mais apparemment le protected est beaucoup plus complexe...Ou alors un truc m'échappe.
Dans mon code, depuis la classe Personnage je peux faire Magicien.Vie mais depuis la classe Magicien impossible de faire Personnage.vie.
J'en conclus que "Protected Vie" dans une "classe A" dit que tu accèdes depuis cette classe à d'autre Vie mais uniquement si l'objet est du type A.
Par exemple : Accès à la vie d'un magicien depuis magicien ou personnage car magicien est a la fois magicien et personnage mais dans l'autre sens ce n'est pas vrai donc impossible d'accéder à Vie de personnage depuis magicien car un personnage n'est pas forcément un magicien.
Soit c'est ça, soit quelque chose m'échappe dans VB.net.....
N'hésiter pas à me répondre, je ne pratique pas encore beaucoup la POO
Merci
A bientôt.
Partager