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 :

Exercice de base de programmation


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 58
    Points
    58
    Par défaut Exercice de base de programmation
    J'ai une petite question à poser.
    On m'a donné l'exercice suivant, je connais la réponse... C'est la première. Mais comment l'expliquer clairement ?
    Merci !


    On suppose que dans une application Java on a défini :


    public class A {

    public A() { ... }

    }


    public class B extends A {

    public B() { ... }

    }


    Dans une méthode dans laquelle on a déclaré :

    A objA = new A();
    B objB = new B();


    - Les instructions suivantes sont-elles valides ?
    1) objA = objB;
    2) objB = objA;

    Justifier.

  2. #2
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    Si tu es fils de ton papa tu herites toutes les proprietes de ton papa donc tu es comme ton papa un humain qui chier et qui pete
    oops desole, j'ai pas donné la version classique avec les vehicules et les voitures.
    en gros c'est l'heritage !

    enjoy
    ..::: aa du bocal ..:::
    Il nous faut deux ans pour apprendre à parler et toute une vie pour apprendre se taire.
    N'oublier surtout pas de ne pas poster la réponse même si on vous a pas aidé

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Etant donné que B hérite de A, tout objet B peut-être de type A (mais pas l'inverse).

    Donc tu peux faire : objA = objB;
    Du même genre, tu peux également faire A obj = new B();

    Pour résumé, c'est grâce à l'héritage

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Etant donné que B hérite de A, tout objet B peut-être de type A (mais pas l'inverse).
    Oui, mais pourquoi pas l'inverse ?

    Une erreur est généré par Java dans ce cas là mais quel est le problème ?

  5. #5
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    mettons, une classe Animal, et une classe fille Chien.
    un Chien est un Animal, mais un Animal n'est pas un Chien

  6. #6
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    euuh pourquoi ?
    si la voiture herite de vehicule, la voiture est forcement un vehicule mais un vehicule n'est pas forcement une voiture ça peut un poid lourd ...
    euuh je pense que vous avez besoin d'un bon bain de doc :
    ftp://ftp2.developpez.biz/developpo/...va/classes.pdf
    regarder le principe d'heritage et si vous avez des questions aprés une bonne doc vous allez voir que c'est aussi simple.
    j'espere que ma réponse est claire et que je repond bien a votre quetion.

    enjoy.

    Edit :
    ooopps j'ai pas vu le post de alceste
    ..::: aa du bocal ..:::
    Il nous faut deux ans pour apprendre à parler et toute une vie pour apprendre se taire.
    N'oublier surtout pas de ne pas poster la réponse même si on vous a pas aidé

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Oui ça j'avais compris merci

    Ce que je souhaite c'est une explication plus technique... Au niveau du compilateur, de l'exécution etc... Je voudrais savoir pourquoi ce n'est pas possible de choisir la deuxième réponse.

  8. #8
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    si je ne me trompe pas l’héritage simple de java, on met au debut de la mémoire les attributs et les méthodes de la classe mére puis après, ceux de la nouvelle classe. ainsi l’objet sera interprété comme il faut si on utilise des méthodes de la classe mére qui ne verront que la partie de l’objet qui les intéressent et en gros c'est le principe des pointeurs sur fonctions ... oula arrétez moi si j dis une betise plizzzzzz
    mais grossomerdo c'est ça !
    c'est que du partage de memoire du coup acces aux methodes et attributs bien sur comme les processus et non comme les thread c'est a dire que la zone memoire n'est pas la meme donc il partage pas les memes var !

    euuh c'est un peu ambigue ?
    ..::: aa du bocal ..:::
    Il nous faut deux ans pour apprendre à parler et toute une vie pour apprendre se taire.
    N'oublier surtout pas de ne pas poster la réponse même si on vous a pas aidé

Discussions similaires

  1. base de programmation RPG 400
    Par dodyx dans le forum DB2
    Réponses: 1
    Dernier message: 01/09/2007, 19h27
  2. [RPC] Obtenir les bases pour programmer
    Par AuraHxC dans le forum Réseau
    Réponses: 14
    Dernier message: 12/02/2007, 23h18
  3. [Lazarus] Les bases de programmation
    Par twisterpcnet dans le forum Lazarus
    Réponses: 1
    Dernier message: 30/01/2007, 21h46

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