Je vais essayer d'exposer mon cas clairement:
Je programme une application avec des jeux de 32 ou 54 cartes.
J'ai donc crée une classe Carte (jusque là pas de problème) puis une classe JeuDeCarte (qui contient un attribut qui n'est autre qu'une liste de cartes).
Ce jeu pouvant être de 32 ou de 54 cartes je me suis dit que ce serait pas mal de créer des classes héritées.
Premier problème: comment spécifier que ma classe "JeuDeCartes" est abstraite?
Ensuite lorsque je construis mon jeu de carte (à partir de la classe héritée "JeuDeCartes_32") et que j'essaye d'appliquer une méthode dessus de la classe "JeuDeCartes", mon objet "listeDeCartes" a tout bonnement disparu.J'ai le message d'erreur: "La référence d'objet n'est pas définie à une instance d'un objet.".
Pour l'instant j'ai fais de l'objet uniquement en java et il n'y avait pas ce genre de problème ...
Quand on appelle une méthode de la classe supérieure sur un attribut de la couche inférieure ne devrait-elle pas s'appliquer sur cet attribut?
voici mon code simplifié:
ensuite dans mon main:
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 public class JeuDeCartes public listeDeCartes(0) as Carte 'liste de cartes déclarée à 0 éléments public sub maMethode() 'dans laquelle j'appelle la liste de cartes end class public class JeuDeCartes_32 Sub New() ReDim Me.listeDeCartes(32) 'je redimensionne ma liste de cartes pour un jeu de 32 cartes ... ensuite j'instancie chacune des cartes de ma liste de cartes -> pas de problème end sub end class
merci de m'éclairer sur l'héritage et cie en visual basic
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim jeu32 as JeuDeCartes_32 jeu32 = new JeuDeCartes_32 jeu32.maMethode() <- problème la liste de cartes n'existe plus ...
Partager