Bonjour ,

Une question me taraude .
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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