"Est-ce que le carré dérive de rectangle, ou alors est-ce le rectangle qui dérive du carré ?"
Ah.... j'adore ces questions pièges.
Car le piège n'est pas là où on le pense !! La réponse est : "ni l'un, ni l'autre !!"
une bonne réponse possible est "un Carré est une instance de la classe Rectangle"
Rectangle carré = new Rectangle(length,length);
Et dans ce cas, on peut réellement dire qu'un carré est un rectangle:
assert(carré instanceof Rectangle);
De cette définition, on peut créer une classe Carré qui utilisera un rectangle comme attribut privé.
1 2 3 4 5 6 7
|
class Carré {
private Rectangle instance;
public Carré(int length) {
this.instance = new Rectangle(length,length);
}
} |
Partager