/**
* Ce programme sert à montrer l'héritage
* en Java
* @author Mohamed Lokbani (idée de départ Decker & Hishfield: programming.java)
* @version 1.2
*/
import java.awt.*;
import java.awt.Point;
import java.applet.Applet;
/**
Classe: Dessine
Description: Dessine est une interface qui contient la méthode abstraite "dessine".
*/
interface Dessine {
/**
Méthode: dessine
méthode abstraite
@param g Un graphique
*/
public void dessine(Graphics g);
}
/**
Classe: ObjetGeom
Description: la classe "ObjetGeom" abstraite, elle permet de manipuler un
objet géométrique donné.
*/
abstract class ObjetGeom {
// Un Point repréré par ses coordonnées x,y
protected Point lepoint;
// les dimensions d'un "objet" largeur + hauteur
protected Dimension dimension;
/**
Méthode: deplace
méthode permettant de déplacer la position d'un Point.
@param x : coordonnée X
@param y : coordonnée Y
*/
public void deplace(int x, int y) {
lepoint.x = x;
lepoint.y = y;
}
/**
Méthode: superficie
méthode abstraite permettant de calculer la superficie d'une figure
@return a double
la valeur de la superficie
*/
abstract public double superficie();
}
/**
Classe: Rect
Description: la classe "Rect" hérite des propriétés de la classe "ObjetGeom" et elle implémante
la méthode "dessine" se trouvant dans l'interface "Dessine".
*/
class Rect extends ObjetGeom implements Dessine {
/**
Méthode: constructeur Rect
@param x : coordonnée X
@param Y : coordonnée Y
@param diml : largeur
@param dimh : hauteur
*/
Rect(int x, int y, int diml, int dimh) {
super.lepoint = new Point(x,y);
super.dimension = new Dimension(diml,dimh);
}
/**
Méthode: superficie
definition de la "superficie" méthode abstraite de la classe "ObjetGeom"
@return a double
la superficie de la figure
*/
public double superficie() {
return (double) (dimension.width * dimension.height);
}
/**
Méthode: dessine
definition de "dessine" méthode abstraite de l'interface "Dessine"
Elle permet de dessiner un rectangle à la position définie par "lepoint"
et d'une dimension définie par "dimension".
@param g Un graphique
*/
public void dessine(Graphics g) {
g.drawRect(lepoint.x,lepoint.y,dimension.width,dimension.height);
}
}
/**
Classe: drawRect
Description: la classe "drawRect" est une applet. Elle hérite des propriétés
de la classe "java.applet.Applet".
*/
public class drawRect extends java.applet.Applet {
/**
Méthode: paint
permet de dessiner un "graphic".
@param g Un graphique
*/
public void paint(Graphics g) {
Rect unRect = new Rect(10,20,100,140);
unRect.dessine(g);
}
}