Bonjour tout le monde . J'ai une question simple de débutant à poser . Imaginant une classe Chien ainsi qu'une classe Brebis , toutes les deux implémentant une interface animal .
Avec une interface animal comme ceci .
Maintenant , en travaillant sous éclipse , j’implémente la méthose setColor() dans Chien et dans Brebis . Le problème est que je ne veux pas les mêmes argument pour le chien et pour la brebis . Eclipse me dit qu'il faut que j'implemente la méthode sans argument comme dans l'interface animal . Je pourrais les rajouter dans l'interface mais comme les argument sont différents pour Chien et Brebis, il me faudrait créer 2 méthodes setColor() dans l'interface . Alors est que éclipse me dit n'importe quoi, ou alors que je doive en java implémenter la méthode avec exactement les mêmes arguments ? Si c'est le cas, ça limite fortement alors l’intérêt des interfaces à mon avis . J'ai aussi remarqué qu" eclipse dit la même chose pour les méthodes abstraites dans les classes abstraites . Moi je voudrai pouvoir redefinir les méthodes avec les arguments que je veux . Alors j'ai trouvé une solution, qui est d'utiliser un méthode avec un nombre d'arguments variables comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public interface Animal { void setColor(); }
le problème et que ça ne marche que pour un seul type d'argument . Je m'explique : imaginant que je veuille passer au chien 2 String et 1 int, alors que je veux passer à la brebis 2 String et 1 double . Je ne pourrais pas faire ceci, à moins d'avoir une méthode setColot qui prend en compte tout les types d'arguments voulu ( int,String, double ) et de passer des objets null en paramètres quant on a pas besoin . Exemple j'ai pas besoin de int pour la brebis . Je met un objet int null en argument . Mais bon je trouve ça pas très "propre ".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void setColor (String... args) ;
Alors question, éclipse a t-il tort, ai je le droit de faire ceci en java ? Si non, je peux toujours utilisés les méthodes que j'ai trouvé (en italique souligné dans le texte) . Mais , soit elles sont pas pratique du tout et enlève l’intérêt des interfaces . Le but étant d'avoir des méthodes polymorphes . Soit elle sont pas "propres" et compliqués à mettre en place . Donc y a t il une autre méthode . Voila merci, si vous avez lu ce gros pavé , pas forcement très clair . Et merci d'avance si vous me répondez . Et un petit smiley pour clore le message :
Partager