Heritage en java
jeuneDebutant
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
jeuneDebutant Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
jeuneDebutant Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois realiser un programme et j'ai une petite question concerant l'héritage entre classe en java.
Supposons que j'ai une class A suivie de deux classe qui héritent de A : class B et class C.
On a donc,
- class A
methode 1a
...
- class B extends A
methode 1b
...
- class C extends A
methode 1c
...
Si j'ai un objet "b" de la classe B alors je peux utiliser les méthodes de la class B(methode 1b,...) ainsi que les méthodes de la class A(méthode 1a,...) en ecrivant b.methode1b() ou b.methode1a.
Mon problème est que j'ai un tableau d'élement de class A. Par conséquent, ces éléments sont de la forme B ou C. Lorsque je veux faire T[x].methode1b() pour un x fixé, ca marche pas! Par contre, T[x].methode1a oui.
J'ai ecris ensuite if (T[x] instanceof class B){ T[x].methode1b()} mais ca marche toujours pas!
Est-ce que c'est que pour lui, T[x] est un élément A mais il sait pas le reconnaitre comme élément B. Y-a-t-il une methode? un mot clé?
*ps. J'espère avoir été le plus clair possible.
Merci d'avance pour votre aide.
Je dois realiser un programme et j'ai une petite question concerant l'héritage entre classe en java.
Supposons que j'ai une class A suivie de deux classe qui héritent de A : class B et class C.
On a donc,
- class A
methode 1a
...
- class B extends A
methode 1b
...
- class C extends A
methode 1c
...
Si j'ai un objet "b" de la classe B alors je peux utiliser les méthodes de la class B(methode 1b,...) ainsi que les méthodes de la class A(méthode 1a,...) en ecrivant b.methode1b() ou b.methode1a.
Mon problème est que j'ai un tableau d'élement de class A. Par conséquent, ces éléments sont de la forme B ou C. Lorsque je veux faire T[x].methode1b() pour un x fixé, ca marche pas! Par contre, T[x].methode1a oui.
J'ai ecris ensuite if (T[x] instanceof class B){ T[x].methode1b()} mais ca marche toujours pas!
Est-ce que c'est que pour lui, T[x] est un élément A mais il sait pas le reconnaitre comme élément B. Y-a-t-il une methode? un mot clé?
*ps. J'espère avoir été le plus clair possible.
Merci d'avance pour votre aide.
A voir également:
- Heritage en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
5 réponses
Dans une autre classe.
C'est assez compliqué je sais mais j'ai une classe D si tu veux qui est un tableau d'élément de A.
public class D{
A [] t;
int taille;
ou t est le tableau et pas "T" comme j'ai ecrit en haut.
C'est assez compliqué je sais mais j'ai une classe D si tu veux qui est un tableau d'élément de A.
public class D{
A [] t;
int taille;
ou t est le tableau et pas "T" comme j'ai ecrit en haut.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Jme suis trompé, jviens de faire un petit schéma, je t'explique avec un exemple:
Tu as A qui représente la classe Animal,
B représente la classe Mouton qui extends d'Animal,
Ta methodeB correspond à Crier par exemple,
C représente la classe Bergerie qui contient un tableau d'"Animal".
Donc si tu veux appeler la méthode Crier de Mouton il faut que la case de ton tableau soit en Mouton, c'est à dire qu'il faut "casté" la case du tableau A en B
Normalement ça se fait ((B)t[x]).methodeB();
essaye :p
Tu as A qui représente la classe Animal,
B représente la classe Mouton qui extends d'Animal,
Ta methodeB correspond à Crier par exemple,
C représente la classe Bergerie qui contient un tableau d'"Animal".
Donc si tu veux appeler la méthode Crier de Mouton il faut que la case de ton tableau soit en Mouton, c'est à dire qu'il faut "casté" la case du tableau A en B
Normalement ça se fait ((B)t[x]).methodeB();
essaye :p