/** * 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); } }