Académique Documents
Professionnel Documents
Culture Documents
LE LANGAGE JAVA
R. HACHEMI G. MERED
HÉRITAGE EN JAVA
Idée : Organiser les classes de manière hiérarchique.
La relation d’héritage est unidirectionelle : si une classe B
hérite d’une classe A, il est évident que la classe A n’hérite pas
de la classe B. B est dite sous classe de A.
class Ville {
private String nom;
Attributs
protected int nbHab;
return presente;
}
} // FIN DE LA CLASSE VILLE
HÉRITAGE EN JAVA
Exemple : Classes Ville et Capitale
pays = lePays.toUpperCase();
}
public Capitale(String leNom, String lePays, int leNbHab){
super(leNom, leNbHab);
pays = lePays.toUpperCase();
}
…
HÉRITAGE EN JAVA
Exemple : Classes Ville et Capitale
…
public String getPays() { return pays; }
public void setPays(String nomPays) {
pays = nomPays;
}
public String presentation() {
Redéfinition
int n = 3; float f;
f = n; // f vaut 3.0
f = f + 1; // conversion de 1 en 1.0 et somme : f vaut 4.0
n = (int) f; // n vaut 4
f = f + 1.5; // f vaut maintenant 5.5
n = (int) f; // 5.5 est arrondi en 5 : n vaut 5
TRANSTYPAGE
2. Transtypage des objets (des références des objets) :
Ville v;
Capitale c = new Capitale("Alger", "Algerie");
v = c;
String lePays;
lePays = (Capitale) v.getPays();
Exemple :
Mais ensuite, pour utiliser les éléments contenus dans Vector et leurs
méthodes propres, il faut indiquer la classe correspondante par un
transtypage explicite.
maListe.elementAt(0).presentation()
((Ville)(maListe.elementAt(0))).presentation();
POLYMORPHISME
Exemple (suite) :
inteface NomInterface {
methode1();
methode2();
class A implements NomInterface{
…
…
}
}
INTERFACE
class A implements NomInterface { … }
2 cas se présentent :
soit la classe A doit être déclarée abstraite (mot clé abstract); les
méthodes non implémentées le seront dans les classes fille de A.
INTERFACE
une variable;
un paramètre;
une valeur de retour;
un type de base d’un tableau;
…
Exemple 1 :
Ces différents types doivent avoir une propriété commune : définir une
relation d’ordre, autrement dit, ils doivent être comparables.
INTERFACE
Intérêt des interfaces :
Exemple 1 :
Exemple 1 :
Notre méthode (qui doit vérifier si un tableau est croissant) peut être
définie de telle sorte qu’elle puisse s’appliquer sur toutes ces classes
(le paramètre est un tableau de comparables) :
INTERFACE
Intérêt des interfaces :
Exemple 1 :
public static boolean croissant(Comparable[ ] t) {
for (int i = 0; i < t.length – 1; i++) {
if (t[i].compareTo(t[i+1]) == +1)
return false;
}
return true;
}
INTERFACE
Intérêt des interfaces :
Exemple 1 :
Exemple 2 :
La déclaration
Comparable v;
indique que la variable v peut référencer des objets de classes
différentes : les classes implémentant l’interface Comparable.