Cela veut dire que l'instance openWith ne peut utiliser que les membres de l'interface IDictionary (puisque c'est son type lors déclaration) pour accéder aux membres (cachés pour le cas) de Dictionnary. Est ce bien cela ?
Merci pour vos lumières.
A.
Discussion :
Cela veut dire que l'instance openWith ne peut utiliser que les membres de l'interface IDictionary (puisque c'est son type lors déclaration) pour accéder aux membres (cachés pour le cas) de Dictionnary. Est ce bien cela ?
Merci pour vos lumières.
A.
Non.
Cela veut dire :
Que openWith est un IDictionnary.
Qu'il est instancié comme Dictionnary.
Que les Key seront des String.
Que les Value seront des String.
Il s'agit d'une collection générique (doublement pour le coup).
"Cela veut dire :
Que openWith est un IDictionnary."
Donc openWith est il limité aux membres de IDictionnary ? Ou peut il accéder aux membres de Dictionnary ?
"Qu'il est instancié comme Dictionnary."
Qu'est ce que cette dernière phrase signifie vraiment ? C'est vraiment pas clair pour moi ...![]()
Oui"Cela veut dire :
Que openWith est un IDictionnary."
Donc openWith est il limité aux membres de IDictionnary ?
Aussi !Ou peut il accéder aux membres de Dictionnary ?
Prenons un cas plus simple, pour expliquer cette notion d'héritage/interface.
tu as une interface :
et une classe qui l'implémente :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public interface IVehicule { public void demarrer(); public void arreter(); }
Si tu fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class Voiture : IVehicule { // trucs de l'interface public void demarrer(){ /*du code*/ } public void arreter(){ /*du code*/ } // autres trucs protected List<Roue> mesRoues; public void tourner(){ /*du code*/} }
alors ta voiture pourra faire tout ce qu'un Vehicule peut faire, + tout ce qu'une voiture peut faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 IVehicule voiture1 = new Voiture();
Il s'agit de la notion d'héritage. Si tu comprend mal ,fais quelques recherche, c'est largement expliqué partout. Si tu as d'autres questions précises , n'hésite pas !
Non : uniquement ce que IVehicule peut faire.
Pour utiliser Voiture, il faudra tenter un cast.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 IVehicule Vehicule; if( isEnforme ) { Vehicule = new Voiture(); } else { Vehicule = new Moto(); } Vehicule.Weeling(); ===> compil pas, car cest uniquement chez une moto
cependant, ...en procédant comme suit :
Voiture voiture1 = new Voiture();
au lieu de
IVehicule voiture1 = new Voiture();
Je pourrai aussi faire tout ce qu'un véhicule peut faire non. Puisqu'un objet de type voiture implémente nécessairement l'interface IVéhicule ... ?
C'est à ce niveau là que je bloque dans le concept d'héritage en fait. Qu'est ce qui différencie ces deux lignes de code ?
Dans ton exemple on peut donc logiquement faire (?) : voiture1.tourner();
Vais faire quelques recherches sur le ouaib ...
A.
Partager