Héritage JAVA

Bonjour voici un cas d’école :

package verger;

public class fruitsAPepin extends fruits {
   public String chaire = "Inconnue";
   public croquer methodeConsommation;

   public fruitsAPepin() {
    super();
    createMethodeConsommation();
   }

   public void createMethodeConsommation() {
    methodeConsommation = new croquer();
   }

   public class croquer extends manger {
     public Boolean fruitsTendre() {
       return (chaire.equals("Tendre"));
      }
   }
}

Un autre objet :

package verger;

public class pommes extends fruitsAPepin {
   public String chaire = "Tendre";
}

Alors que j’ai l’impression de surcharger la variable “chaire”, l’objet methodeConsommation continu d’utiliser “Inconnue” … Pourquoi ?

Je viens de m’apercevoir qu’en passant par un setter ça fonctionnait.
La surcharge n’existe pas sur les variables ?

[quote=“debianhadic”]Je viens de m’apercevoir qu’en passant par un setter ça fonctionnait.
La surcharge n’existe pas sur les variables ?[/quote]
Je ne connais pas très bien Java, mais le comportement est cohérent avec ce qui se passe en C++ : tu ne modifies pas la variable existante fruitsAPepin::chaire mais tu crées une nouvelle variable pommes::chaire tandis que methodeConsommation continue d’utiliser fruitsAPepin::chaire.
Bref, ça me semble tout à fait normal, et le pattern habituel est effectivement d’utiliser un setter dans le constructeur de la classe dérivée.