
{filelink=11162}
import java.util.Random;
/*
*
* Exemple de Polymorphie en Java
*
**/
public class ExempleForme {
private static RandomShapeGenerator gen = new RandomShapeGenerator();
public static void main(String[] args) {
Shape[] s = new Shape[5];
// Remplir le tableau avec les formes:
for (int i = 0; i < s.length; i++)
s[i] = gen.next();
//Appels de la m�thode polymorphique:
for (int i = 0; i < s.length; i++)
s[i].dessiner();
}
}
class Shape {
void dessiner() {
}
void effacer() {
}
}
class Cercle extends Shape {
void dessiner() {
System.out.println("Cercle.dessiner()"); //La m�thode dessiner de la classe cercle
}
void effacer() {
System.out.println("Cercle.effacer()");
}
}
class Carr� extends Shape {
void dessiner() {
System.out.println("Carr�.dessiner()"); //La m�thode dessiner de la classe cerr�
}
void effacer() {
System.out.println("Carr�.effacer()");
}
}
class Triangle extends Shape {
void dessiner() {
System.out.println("Triangle.dessiner()"); //La m�thode dessiner de la classe triangle
}
void effacer() {
System.out.println("Triangle.effacer()");
}
}
// Factoriser la g�n�ration des Formes
class RandomShapeGenerator {
private Random rand = new Random();
public Shape next() {
switch (rand.nextInt(3)) {
default:
case 0:
return new Cercle();
case 1:
return new Carr�();
case 2:
return new Triangle();
}
}
}