|
|
|
|
suppose une classe planete et une classe planete_gazeuse et planete_nongazeuse qui heritent de la classe planete.
une planete peut etre gazeuse mais pas forcément alors qu'une planète gazeuse ou non_gazeuse est forcément une planete donc oui tu peux caster ta classe B qui hérite de A en un objet A, tu fais B b(...); (A)b;
|
Il faut redefinir les méthodes de la classe héritée (A) dans la classe qui hérite (B). |
J n'avais pas bien compris la question... |
Merci pour les réponses, pour être plus clair :
public class Planete { ... public void print(){ System.out.println(" je suis une planete "); } } public class PlaneteGazeuse extend Planete { ... public void print(){ System.out.println(" je suis une planete gazeuse"); } } Je voudrais pouvoir faire : PlaneteGazeuse g = new PlaneteGazeuse(); et ensuite convertir g en Planete de facon a ce que g.print() affiche " je suis une planete" et plus generalement de maniere a ce que g soit reelement d'instance Planete . Ce qui ne marche pas avec un simple cast ... Apparament il y a des techniques d'upcast mais je n'ai pas encore tout compris.
|
Tu mets dans le constructeur de la classe Planete tu mets ta chaine caracteres "je suis une planete ", et ensuite dans le constructeur de la classe PlaneteGazeuse tu appelles le constrcture de la classe heritée en faisant " this.super().
Cette methode te renvoie la chaine de carctère de la classe héritée. En faisant PlaneteGazeuse pl=new PlaneteGazeuse (), ====> "je suis une planete ". |
Tu fais tout simplement : super.print()
et c'est réglé!!!! |
Effectivement ca marche, mais ca ne me suffit pas car je voudrais que l'objet devienne reelement et uniquement un objet de la classe mère.
Il y aurait une technique qui serait de passer par le constructeur de la classe mère ( creer un nouvel objet mère et lui reaffecter tous les attributs de l'objet fils ) mais qui est un peu fastidieux et lourd si le nombre d'attributs est important. Apparement c'est assez compliqué ou impossible de faire ca plus simplement ...
|
| 26/09 11h31 | Java Runtime Machine | Navigateurs |
| 05/11 11h45 | [Javascript] Date de dernière modification | Javascript |
| 05/11 11h52 | [Javascript] Effacer un champ de formulaire lors du clic (focus) | Javascript |
| 08/11 10h32 | [Javascript] Lien aléatoire / Choisir un lien au hasard | Javascript |
| 24/11 13h49 | 2 bons livres pour Java et C++ | Langages |
| 04/12 10h43 | Heritage JavaScript avec prototype.js | 1 |
| 18/07 11h49 | Heritage java | 11 |
| 10/06 16h13 | Héritage java | 1 |
| 07/06 22h14 | C++ et java suportent-il l'héritage multiple? | 1 |
| 28/05 19h19 | Java collection et héritage | 7 |
![]() | Web Developer Toolbar - WebDeveloper est une extension firefox représentant une formidable boîte à outils pour examiner et manipuler les pages... | Catégorie: Extensions Firefox Licence: Freeware/gratuit |
![]() | Java Runtime Environment - Java Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des... | Catégorie: Java Licence: Open Source |
![]() | Azureus - Azureus est un client BitTorrent multiplateformes développé en Java, c'est-à-dire un gestionnaire de téléchargement de... | Catégorie: Téléchargement Licence: Open Source |
![]() | FreeMind - FreeMind est un logiciel de Mind mapping entièrement libre, permettant de créer des cartes heuristiques permettant de... | Catégorie: Organisation Licence: Open Source |
![]() | Cabasse JAVA MT4 Cherry | Catégorie: Enceintes | 1,475.00 € PriceMinister |
![]() | Settlers 5 : Heritage | Catégorie: Jeu vidéo PC | 7.89 € PriceMinister |
![]() | Settlers : The Heritage | Catégorie: Jeu vidéo PC | 5.00 € PriceMinister |
![]() | Cabasse JAVA MT4 Beige | Catégorie: Enceintes | 1,475.00 € PriceMinister |