Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question sur le cours Java

    27 août 2015 à 17:01:42

    C'est écrit ceci ici: https://openclassrooms.com/courses/apprenez-a-programmer-en-java/les-classes-abstraites-et-les-interfaces
    Ouh là ! Vous vous rendez compte que vous obtiendrez des lions qui auront la possibilité de faire le beau ? Dans ce cas, on n'a qu'à mettre ces méthodes dans la classe Chien, mais j'y vois deux problèmes :
    
    1-vous allez devoir mettre en place une convention de nommage entre le programmeur qui va utiliser vos objets et vous. Vous ne pourrez pas utiliser la méthode faireCalin(), alors que le programmeur oui ;
    2-si vous faites cela, adieu au polymorphisme ! Vous ne pourrez pas appeler vos objets par le biais d'un supertype. Pour pouvoir accéder à ces méthodes, vous devrez obligatoirement passer par une référence à un objet Chien. Pas terrible, tout ça !


     Je comprends pas le problèmes :(

    Merci a vous! 

    • Partager sur Facebook
    • Partager sur Twitter
      28 août 2015 à 9:57:08

      Salut,

      Le problème est que certaines de tes classes (Lions ici) auront des méthodes (avec leur implémentation) que tu ne veux absolument pas pour elle ! (faireCalin() ... ).

      Si tu as une méthode

      public void faireCalin(){
       System.out.println("Je fais un calin");
      }

      Définit dans la classe Animale, alors si tu as un Chien comme Animal, pas de problème pour lui de faire un Animal.faireCalin... Mais si tu as un Lion comme Animal, la ça craint car je n'ai pas du tout envie de faire un câlin a un lion ^^

      La solution est donc de mettre ces méthodes dans les classes qui en ont besoin (Chien, Chat... Mais pas Lion). Mais cela implique :

      • convention de nommage
      • appel de référence (Chien.faireCalin au lieu de Animal.faireCalin qui est vachement plus joli, propre,maintenable toussa toussa...)

      La réelle solution est donc les interface ! Et je m’arrête la, mais si ce n'est pas encore clair n’hésite pas !

      Il y a beaucoup de concept difficiles, mais ça vient avec du temps et de la pratique ne t’inquiète pas !

      • Partager sur Facebook
      • Partager sur Twitter

      Question sur le cours Java

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown