Bonsoir a tous , j’ai une petite question consernant cet exemple :
void testClasse(Object o) {
if (o instanceof MaClasse )
System.out.println(" o est une instance de la classe MaClasse ");
else System.out.println(" o n'est pas un objet de la classe MaClasse ");
}
void afficheChaine1(Object o) {
if (o instanceof MaClasse)
System.out.println(o.getChaine());
// erreur à la compil car la méthode getChaine()
//n'est pas définie dans la classe Object
}
// pour palier au probleme la methode sera :
void afficheChaine2(Object o) {
if (o instanceof MaClasse)
{
MaClasse m = (MaClasse) o;
System.out.println(m.getChaine());
Ma question (s) est la suivante:
Pourquoi O.getchaine() ne fonctionnerais pas , elle est de meme type que MaClasse(affichechaine1)
Quelle est l’interet de declarer une variable par exemple :Object a =new Maclasse() ;
Puis de faire un cast afin d’utiliser la methode implemanté dans la classe MaClasse ;
(pour dire quelle est la difference entre :
o st de type Object, et donc ne possede pas la méthode getChaine(), pour l'avoir il faut downcaster.
A part de très rares exception, instanceOf et les cast sont à éviter.
utilisation de la methode instanceof()
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.