package geometrie; interface FormeNommée extends Forme { String getNom(); }
Définissons maintenant les classes PointNommé, CercleNommé et RectangleNommé afin qu'ils réalisent FormeNommée au lieu de Forme. Le plus simple est d'en faire des extensions des classes Point, etc. Les types concrets PointNommé, CercleNommé, etc., doivent donc définir la méthode getNom. Il faut par conséquent ajouter un paramètre de type String au constructeur, et invoquer le constructeur de la classe parente, au moyen de super(x, y) :
package geometrie; class PointNommé extends Point implements FormeNommée { private String nom; PointNommé(double x, double y, String nom) { super(x, y); this.nom = nom; } public String getNom() { return nom; } }
La classe PointNommé est un sous-type de Point, qu'elle étend, et de FormeNommée, qu'elle réalise.