Polymorphisme, Exceptions, Paquetages
Sébastien Jean
IUT de Valence
Département Informatique
v6.1, 21 septembre 2013
Polymorphisme Généralités
Polymorphisme, ou l’objet aux multiples identités
Capacité d’un objet à être vu à travers de multiples types
Une instance de PileEntiersPositifsOuNulsAvecSomme peut
« être vue comme » une instance de PileEntiersPositifsOuNuls
ou comme une instance de Object
Mais pas l’inverse !
PileEntiersPositifsOuNuls p = new PileEntiersPositifsOuNuls();
PileEntiersPositifsOuNulsAvecSomme ps = new PileEntiersPositifsOuNulsAvecSomme();
p = ps; Autorisé, le type de p est plus générique que celui de ps
ps = p; Interdit, le type de ps est plus spécifique que celui de p
Variable
p
ps
Référence Objet
type PEPN
type PEPNAS
type PEPN
type PEPNAS
Sébastien Jean (IUT Valence) Java, interfaces v6.1, 21 septembre 2013 1 / 20
Polymorphisme Généralités
Polymorphisme, ou l’objet aux multiples points de vue
Affectation d’un type compatible 6=forçage de type !
Le type de la variable restreint l’accès aux méthodes et attributs
définis dans PileEntiersPositifsOuNuls
Le type de l’instance définit le comportement (redéfinitions)
PileEntiersPositifsOuNuls p = new PileEntiersPositifsOuNuls(...);
PileEntiersPositifsOuNulsAvecSomme ps = new PileEntiersPositifsOuNulsAvecSomme()
p = ps;
int s = p.getSomme(); Interdit, méthode indéfinie dans PEPN
System.out.println(p.depiler());
PileEntiersPositifsOuNulsAvecSomme
Variable
p
ps
Référence Objet
type PEPN
type PEPNAS
type PEPN
type PEPNAS
PEPN
Sébastien Jean (IUT Valence) Java, interfaces v6.1, 21 septembre 2013 2 / 20
Classe Object Généralités
La classe Object
Classe Object =racine de tous les arbres d’héritage
Méthodes de la classe java.lang.Object (extrait)
public Object clone() Clonage de l’objet. En général redéfinie
dans les sous-classes
public boolean equals(Object o) Comparaison d’objets (égalité de ré-
férences). En général redéfinie dans les
sous-classes
public int hashCode() Obtention d’une valeur de hachage
public String toString() Obtention d’une description textuelle
de l’objet, en langage naturel. En général
redéfinie dans les sous-classes.
Sébastien Jean (IUT Valence) Java, interfaces v6.1, 21 septembre 2013 3 / 20
Classe Object Sémantique des méthodes
Les méthodes de Object :equals et hashCode
Méthode equals()
Par défaut, deux objets sont identiques s’ils ont la même référence
Equivalent au test ==
A redéfinir dans les sous-classes en fonction des besoins
PileEntiersPositifsOuNuls p1 = new PileEntiersPositifsOuNuls();
PileEntiersPositifsOuNuls p2 = new PileEntiersPositifsOuNuls(...);
System.out.println(p2.equals(p1));
p2 = p1;
System.out.println(p2.equals(p1));
Méthode hashCode()
Retourne une valeur de hachage (par défaut, 6=pour chaque objet)
A redéfinir dans les sous-classes si equals est redéfinie,
deux objets égaux doivent avoir des hashcodes égaux
Sébastien Jean (IUT Valence) Java, interfaces v6.1, 21 septembre 2013 4 / 20
1 / 21 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !