Créer une variable d'un type et y insérer un objet hérité...
sardaukarbibou
Messages postés2Date d'inscriptionlundi 27 septembre 2004StatutMembreDernière intervention15 février 2006
-
22 sept. 2005 à 09:14
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 2005
-
22 sept. 2005 à 10:15
Salut,
Je suis actuellement sur un projet en prog en VB.NET consistant a faire une sorte de bataille navale. Il y a pour l'instant 2 types d'unités (croiseur et transporteur) qui héritent chacune de la classe "Bateau", qui hérite de "PictureBox". Pour bien faire, il faudrait que chaque joueur ait un tableau qui contient toutes ses unités qui sont toutes des "Bateaux" mais indifférement de type "Croiseur" ou "Transporteur" (M'évitant de créer un tableau par type d'unité, ce qui peut se montrer contraignant si j'ajoute de nouvelles unités).
Malheureusement, si je crée un tableau de "Bateaux" et que j'y met par exemple un "Croiseur", je n'ai pas accès aux fonctions et propriétés de "Croiseur", mais uniquement de "Bateau", donc je ne peux rien en faire, et si je définit un tableau d'objet, j'ai accès aux propriétés et fonctions de ce que j'y insère mais je ne peux plus récupérer les évènements.
Je suis désolé si mes explications sont confuses mais je ne suis pas un gourou de la prog et j'avoue avoir un peu de mal à y retrouver mes petits....
Merci d'avance
A voir également:
Créer une variable d'un type et y insérer un objet hérité...
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 22 sept. 2005 à 10:15
Salut,
Tout d'abord, le comportement que tu obtient est normal. Si tu fait un
tableau de Bateau et que tu prend un élément dedans, il s'agit d'un
Bateau. Il peut s'agir d'un héritier, tu ne vois au niveau du code que
le "comportement" de base. Bon, je vais arréter, je sens que ça va être
fouilli et pas clair du tout.
Premier point, si il y a pas des propriétés/méthodes qui sont communes
entre tes différents héritiers je pense que tu les aura déjà définit au
niveau de la classe Bateau.
Ensuite, conseil pour les événements, branchent les dès que tu crées l'objet.
Enfin, tu peux déterminer à l'exécution le type de l'objet à l'aide de TypeOf et Is comme suit :