Polymorphisme Heritage reference
Bonjour ,
Une question me taraude :aie::lol:.
Pourquoi dans une méthode main , je ne peux pas appliquer la méthode afficheC () de la classe PointCouleur en utilisant le polymorphisme comme ci dessous :
Point c = new PointCouleur (2 ,5 ,(byte)3);
c.afficheC ();
Je me retrouve bien avec un Objet de type Point qui référence Un PointCouleur?
Alors que si je fais :
Point c = new PointCouleur (2 ,5 ,(byte)3);
c.affiche () ;
je fais bien appel à la méthode affiche de la classe PointCouleur , pourquoi je peux appliquer la méthode affiche et ne peut pas appliquer la methode afficheC.
merci
Ces sources sont tirées du Livre de Delannoy .
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Classe Point
public class Point {
private int x ;
private int y ;
public Point() {
}
public Point (int x , int y ){
this.x = x;
this.y = y;
}
public void affiche (){
System.out.println ("je suis en " + x + " " + y );
}
}
public class PointCouleur extends Point {
private byte couleur ;
public PointCouleur(int x , int y , byte couleur) {
super (x,y);
this.couleur = couleur;
}
public void affiche(){
super.affiche();
System.out.println (" et ma couleur est : " + couleur);
}
public void afficheC (){
System.out.println (" et ma couleur est : " + couleur);
}
} |
Question