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 :

[Heritage] Gestion des constructeurs


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut [Heritage] Gestion des constructeurs
    Quand on cree un constructeur d'une classe derivant d'une autre classe, est il obligatoire d'appeler le constructeur de ladite classe avec super ?

    Sous delphi, un appel au constructeur parent etait vivement recommandé.
    Ici aussi ?

    Quels sont les regles de creation des constructeur et des appels a super ?

    Merci.

  2. #2
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Si le "construteur parent" est un constructeur sans paramètre (et seulement dans ce cas), il est automatiquement appelé avant toute ligne de code dans le "constructeur fils" : sauf si bien-sûr cet appel "super()" au constructeur-parent sans paramètre est présent dans le constructeur-fils (ce qui est conseillé pour être cohérent avec les autres appels du type "super(a,b)").

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    donc en fait pour etre coherent, il est preferable que dans chaques constructeurs je fasse appel a super() ou super(...) qu'il s'agissent de classes "extends" ou de classe de base (qui par defaut doivent "extends" une classe mere "Object" non ?) ?

    Si c'est le cas, ca reste coher"ent par rapport a ma conception sous delphi.
    Je prefere expliciter les appels d'ailleur que de laisser faire

  4. #4
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par Clorish
    classe de base (qui par defaut doivent "extends" une classe mere "Object" non ?)
    Exactement ; mets donc des appels explicites partout (ton code sera plus lisible pour les personnes qui ignoreraient la règle d'appel automatique).

    Pense à cliquer sur le bouton en bas de la discussion.

  5. #5
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    ok merci
    Dans ce cas je prefere aussi

    Citation Envoyé par g_rare
    Pense à cliquer sur le bouton en bas de la discussion.
    pas de problemes je suis un habitué

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    petite precision :
    Je suppose que en l'absence de constructeur, on herite des constructeurs du parents non ?

    de meme que toutes classe possede un constructeur vide par defaut ? ou bien faut il le creer si on le veux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Parent : 
    public MaClasse(Int a, int b)
     
    Creation instance fille sans constructeur defini dans ClassFille
    ClassFille cf = new ClassFille();
    ClassFille cf = new ClassFille(1, 2);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Constructeur et gestion des accès
    Par olivier69 dans le forum Langage
    Réponses: 1
    Dernier message: 08/08/2010, 12h30
  2. [reseaux] Gestion des threads en perl
    Par totox17 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/11/2002, 09h40
  3. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44
  4. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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