IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Héritage et propriété


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut Héritage et propriété
    Bonjour a tous.
    Dans mon code j'ai 4 classes :
    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
     
     
    public class LangUI 
    {
    	public String VERSION_CONTACT = "   info@corp.fr   ";
    	public String VENDOR                = "   Corp  ";
     
    	public LangUI()
    	{
    	}	
    }
     
    class LangUI_FR extends LangUI {
     
    public String HELLO = "Bonjour";
     
    public LangUI () {}
     
    }
     
    class LangUI_ES extends LangUI{
     
    public String HELLO = "Olla";
     
    public LangUI_ES() {}
     
    }
     
    class LangUI_IT extends LangUI{
     
    public String HELLO = "Buongiorno";
     
    public LangUI_IT() {}
     
    }
    Dans mon code je définis
    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
     
     
    public LangUI_FR langUI;
    .......
     
     
     
    private void setlangUI()
    {
    	language = System.getProperty("user.language");		
     
    	if(language.equalsIgnoreCase("it"))
    	{
    		langUI = new LangUI_IT();
    	}	
    	else if(language.equalsIgnoreCase("es"))
    	{
    		langUI = new LangUI_ES();
    	}		
    	else //fr
    	{
    		langUI = new LangUI_FR();
    	}
     
    		System.out.println(langUI);				
    }
    Selon mes tests, "System.out.println(langUI);" me renvoit bien des objet soit LangUI_FR, LangUI_ES, LangUI_IT selon la langue detectée.

    Mais quand je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Srting vendor = LangUI.VENDOR;                
    String langHello = langUI.HELLO;
    vendor = null !!!

    Ca doit être gros comme le nez au milieu de la figure mais je vois pas ....

  2. #2
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Salut,
    Ca doit être gros comme le nez au milieu de la figure mais je vois pas ....
    Pour faire LangUI.VENDOR il faut que VENDOR soit un attribut static de la classe LangUI.
    Et pour faire langUI.HELLO il faut que HELLO soit un attribut de l'objet langUI.
    (sachant qu'un nom de propriété d'instance devrait être tout en minuscule)

    Honnêtement je comprend même pas comment ca peut compiler et je crois que tu es un peu dans la confusion.

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    Il n'y a pas d'héritage sur les attributs !!!!!!!!


    Si tu veux faire de l'internationalisation, il y a des outils pour cela (voir les ResourceBundle !)

    a++

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Sinon, il y a aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String HELLO = "Olla";
    qui devrait être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String HELLO = "Hola";
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String HELLO = "Buenos días";

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut
    Citation Envoyé par Uther Voir le message
    Sinon, il y a aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String HELLO = "Olla";
    qui devrait être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String HELLO = "Hola";
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String HELLO = "Buenos días";
    Ok ok !!!!

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,

    Il n'y a pas d'héritage sur les attributs !!!!!!!!

    a++
    Voila qui est clair.

    T'es sur ? car j'ai tout plein d'objet qui héritent des attributs de leur classe parent

    Tu ne voulais pas plutôt dur "surcharge" ?

    Le polymorphisme ne peut pas s'appliquer dans mon cas ?

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Par défaut
    Il y a pas de polymorphisme pour les attributs, par contre on en hérite. Ce que l'on peut faire c'est les recouvrir. Il faudrait que tu es des méthodes getHello, getVendor...

    Par contre cela marche que avec les méthodes des instances ( celles qui s'appliquent à l'objet ) et non avec les méthodes statiques

  8. #8
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour,

    affirmer que
    Il n'y a pas d'héritage sur les attributs !!!!!!!!
    me parait absurde. Il me semble que seuls les attributs avec le mot-clé protected ne sont pas hérités.

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par polymorphisme Voir le message
    Il me semble que seuls les attributs avec le mot-clé protected ne sont pas hérités.
    En fait, ceux avec le mot-clé private, et ceux sans mot-clé (package-private) pour les sous-classes qui ne sont pas dans le même package.

    Le principe de protected est justement de faire comme package-private mais d'autoriser aussi l'accès aux sous-classes.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Je voulais bien sûr parler de la redéfinition d'attribut via l'héritage (ce qu'il tentait de faire dans son code) et non pas de simple héritage.

    On ne peut pas redéfinir des attributs via l'héritage.

    Sinon bien sûr tous les attributs sont bien hérités, même s'ils sont inaccessibles (private).

    a++

Discussions similaires

  1. [Débutant] héritages de propriétés friend/public et variables statiques/modules
    Par billybobbonnet dans le forum Développement Windows
    Réponses: 0
    Dernier message: 05/09/2014, 13h03
  2. Héritage de propriétés
    Par Deaf dans le forum Maven
    Réponses: 0
    Dernier message: 08/03/2010, 10h28
  3. Réponses: 7
    Dernier message: 17/07/2007, 16h13
  4. [VB.NET]Héritage : valeur d'une propriété perdue
    Par denilson dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/07/2006, 11h50
  5. [héritage] Redonner les propriétés de l'ancêtre
    Par Manopower dans le forum EDI
    Réponses: 5
    Dernier message: 23/08/2005, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo