//
Exemple de classes dérivées en Java
// Derivation.java propriété des classes dérivées
// Définissons la classe 'Figure' qui mémorise un point particulier
// (extrémité, centre, sommet...); une figure doit être dessinée.
// Toute classe qui dérive de 'Figure' devra construire une
// figure avec deux entiers, et devra définir la méthode 'dessiner'
// On construit ensuite trois classes qui dérivent de 'Figure'.
abstract class Figure {
int x,y;
Figure(int a, int b) { x=a; y=b; }
abstract void dessiner();
}
class Ligne extends Figure {
Ligne() { super(0,0); }
void dessiner () { System.out.print("ligne "); }
}
class Ovale extends Figure {
int rayon;
Ovale(int r) { super(0,0); rayon=1;}
void dessiner () { System.out.print("ovale "); }
}
class Rectangle extends Figure {
int largeur,hauteur;
Rectangle(int a, int b, int larg, int h) {
super(a,b);
largeur=larg; hauteur=h;
}
void dessiner () { System.out.print("rectangle "); }
}
public class Derivation {
/** Creates a new instance of Derivation */
public Derivation() { }
public static void main(String[] args) {
Object desF[]= new Object[3];
// N'importe quel objet dérivant de 'Figure' peut être affecté
// à un tableau de 'Figure'.
desF[0]=new Ligne();
desF[1]=new Ovale(3);
desF[2]=new Rectangle(1,2,3,4);
// On réalise ci-dessous que la MVJ apelle la méthode dessiner
// de la classe propre à la figure (Ligne, Rectangle ou Ovale)
// alors que rien ne mentionne la sous-classe dans l'instructon
// ci-dessous
for(int i=0; i