[Language] polymorphisme, interface ...
Bonjour !
Comme l'indique le titre, j'arrive pas à comprendre ce que c que le polymorphisme, a quoi ça sert etc ...
pour interface, j'ai regardé la faq, mais ça ne m'as pas plus éclairé :s ....
Pour ce qui est du polymorphisme, d'aprés ce que j'ai compris dans mon cours, en gros:
on a une classe A
on a une classe B qui hérite de A
Alors on peu définir un objet A en faisant :
A a = new B( ... ) ;
ou l'inverse,... je sais plus :?
bref, où est l'intéret ... si c bien de ça qu'il s'agit !?
et ça ne se limite qu'à ça le polymorphisme ? ou il y a autre chose
Pour ce qui est des interfaces, grossomodo je pense avoir compris qu'il s'agit de permettre a une classe d'hérité de plusieures autres non ?
du moins c ce que je pensais avoir compris dans le cours, mais quand j'ai lus la faq ... :o !
je me trompe ou ça n'a rien à voir ... j'ai rien compris à ce que "vous" dites dedans
quelqu'un aurait-il la bonté de m'expliqué ce que c'est
:oops:
Re: [Théorie] polymorphisme, interface ...
Citation:
Envoyé par Ikit
on a une classe A
on a une classe B qui hérite de A
Alors on peu définir un objet A en faisant :
A a = new B( ... ) ;
C'est bien dans ce sens là, mais ça, c'est de l'héritage. Si tu veux schématiser, un objet d'une sous-classe est toujours un objet d'une super classe, mais pas l'inverse (Un Homme est un EtreHumain, mais un EtreHumain n'est pas toujours un Homme) A quoi ça sert ? A tout :) A écrire du code plus simplement, plus proprement, à concevoir un projet de manière plus claire, etc ! Tout ça se fait principalement en "surchargeant" des méthodes : en gros, je suis une sous-classe, je sais faire tout ce que ma super-classe sait faire, mais également un peu plus et de manière plus précise. Par exemple, la classe ArrayList en Java (en gros, c'est un vecteur dynamique). Si tu définis MyArrayList extends ArrayList, d'emblée ta classe sait utiliser tout ce que ArrayList propose comme methode. Les intérêts sont multiples... suppose que tu aies besoin d'un vecteur, mais que celui-ci gère l'ajout différement (du sytle, au lieu d'ajouter les Objets à la fin, il les insère au début), il te suffit de redéfinir la methode add et le tour est joué. Deuxième avantage, si toutes tes autres classes sont définies comme travaillant avec un ArrayList, pas besoin de tout réécrire. Comme MyArrayList EST un ArrayList aussi, ton code marche toujours. Bref, je vais pas m'étendre d'avantage, je pense que t'as compris :)
Citation:
Envoyé par Ikit
Pour ce qui est des interfaces, grossomodo je pense avoir compris qu'il s'agit de permettre a une classe d'hérité de plusieures autres non ?
Non, pas exactement :) L'héritage multiple est interdit en Java. Une Interface sert juste à définir aux yeux de ton programme et des développeurs ce que ton objet est CAPABLE de faire. Si elle implémente Comparable, elle DOIT nécessairement proposer une methode compareTo. Si elle implémente Clonable, elle doit fournir clone(), etc. L'avantage par rapport à l'héritage c'est qu'elle peut implémenter autant d'Interface que tu veux. L'inconvéniant, c'est que tu dois implémenter toutes les méthodes toi-même (pour l'exemple plus haut, tu aurais pu définir MyArrayList comme implémentant List, mais tu aurais dû te retaper toutes les methodes de List, donc l'héritage était plus intéressant).
Je dois filer au boulot, si y a encore des points d'ombre, hésite pas :)