Académique Documents
Professionnel Documents
Culture Documents
Le polymorphisme
Cest la possibilit de : 1. dclarer plusieurs fois la mme mthode avec la mme signature et des implmentations diffrentes dans plusieurs classes : redfinition. 2. dclarer plusieurs fois la mme mthode avec des signatures diffrentes et des implmentations diffrentes dans la mme classe : surcharge.
08/11/2012
08/11/2012
Un langage orient objet est dit polymorphique, sil offre la possibilit de pouvoir percevoir un objet en tant quinstance de classes varies, selon les besoins, Un objet dune classe B qui hrite dune classe A est au mme temps une instance de type B et une instance de type A.
Question!
Soit B une classe fille de A, et M1 une mthode dfinie dans A et redfinie dans B.
A a = new B() ; a.M1() //quelle mthode va tre appele ? A a = new A() ; a.M1() //quelle mthode va tre appele ?
08/11/2012
Une mthode abstraite doit tre absolument redfinie dans une sous classe pour pouvoir tre utilise. Une mthode abstraite ne peut pas tre dclare static ou private ou final!
Mais on peut dclarer des rfrences du type de la classe abstraite. une classe fille qui ne donne pas une dfinition des mthodes abstraites de sa super classe reste abstraite.
08/11/2012
On ne connat pas toujours le comportement dune mthode commune plusieurs sous-classes Ou la mthode na pas besoin tre dfinie dans la classe, mais on la dclare pour pouvoir utiliser le polymorphisme que les objets.
08/11/2012
Les interfaces
Une interface est une classe abstraite ne contenant que des mthodes abstraites et/ou des attributs constants
interface nom_interface {
public int CONSTANTE = 20; //dclaration dun attribut sans utiliser le mot cl final int methode1 (float x, String S); float //dclarations de la mthode abstraite
Cest static, alors les objets ne vont pas y avoir leur propore attribut et on y accde soit:
avec NomInterface.nomAttribut: y = NomInetface.i +5; Ou directement nomAttribut quand on est dans une classe qui implmente linterface: Y = i+5;
Cest final et en plus pas de constructeurs dans linterface, alors lattribut doit tre initialis explicitement la dclaration.
08/11/2012
Comparaison classe-interface
A l 'instar d'un classe, une interface : Peut avoir les diffrentes visibilits une interface peut hriter de plusieurs autres interfaces:
public interface InterfaceAB extends InterfaceA, InterfaceB { public void otherMethod(); }
Contrairement une classe, une interface : n'a pas de constructeurs peut pas tre instancie peut tre implmente par une classe ne peut pas hriter dune classe
Toute classe qui implmente linterface doit implmenter toutes les mthodes dfinies par linterface Une interface peut tre implmente par plusieurs classes. Une classe peut implmenter plusieurs interfaces: -Cest une solution partielle pour lhritage multiple interdit en Java
08/11/2012
La classe Object
Toute classe hrite directement ou indirectement dune classe prdfinie nomme Object. Les signatures de ses principales mthodes sont :
- Object clone() ; // recopie de lobjet - String toString() ; // renvoie une chaine de caractres - boolean equals(Object) ; // renvoie true si les deux objets sont gaux .
Tableau dynamique et htrogne: taille variable et les lments peuvent tre de types diffrents
Classe ArrayList
import java.util.*; ArrayList al = new ArrayList(3); //initial size 3 al.add(10); al.add( "hello"); al.add( "ENISo"); al.add(1, point1); al.remove("hello"); al.remove(2); //index 2
08/11/2012