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)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 47
    Par défaut (Héritage)
    Bonjour,

    Je viens de créer une class : Animal.
    Dans cette class Animal j'ai un constructeur.

    Après j'ai créer Poisson qui extends Animal.

    Dans mon programme principal.
    je créer une nouvelle Instance Poisson.
    Poisson chat = new Poisson();

    Mais je n'arrive pas a me rendre compte : si le constructeur Animal est t-il appeler quand je créer une Instance de POisson....

  2. #2
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    Tu as lu ca ?

    Pour instancier le constructeur de la classe mère il faut :
    Mais tu peux aussi faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Animal chat = new Poisson();

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut
    Citation Envoyé par pollux007
    Tu as lu ca ?

    Pour instancier le constructeur de la classe mère il faut :
    Salut,
    Le super n'est pas insdispenssable en fait par defaut le constructeur sans parametre de la classe mere est appelé , par contre si tu souhaite appelé un constructeur avec parametre de la classe mere tu dois explicitement l'apeller via le mot clé super(liste de param) .

  4. #4
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Pour instancier le constructeur de la classe mère il faut :
    Code:
    super();
    Pas necessairement. Le constructeur dit "par defaut" est toujours appele. Ainsi, si tu ecris le constructeur suivant, super() (donc Animal()) sera appele pour toi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Poisson extends Animal {
      Poisson() {
        faireUnTruc();
      }
    }
    Il est evident que le constructeur parent par defaut est toujours appele si on omet un appel a super() car on se retrouverait sinon dans le cas d'une instance pas entierement construite et cela poserait des milliards de problemes (environ) pour l'heritage.

  5. #5
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    ok ok c'est bon on a compris.... Désolé pour cette erreur de précision

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 201
    Par défaut
    salut tous le monde.
    Pour ma par les constructeurs sont appellés automatiquement lors de l'instanciation.
    En effet, ces les parametres qui designent le constructeur appelé.Il suffit de diferencier les paramettres dans les constructeurs, et si le constructeur ne contient pas de paramatre il est applé par defaut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    poisson p=new poisson("merlan");
    poisson p1= new poisson();

Discussions similaires

  1. [Postgresql]Héritage
    Par lheureuxaurelie dans le forum PostgreSQL
    Réponses: 13
    Dernier message: 02/10/2008, 09h18
  2. [Héritage] Vos commentaires....
    Par Fyna dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 03/05/2005, 22h10
  3. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55
  4. [Postgres] Héritage + Clés
    Par k-reen dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 21/05/2003, 16h37
  5. Héritage entre Forms
    Par BarBal dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 17h44

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