«interface»
Shape
+ clone(): Shape
Circle
- radius
- color
+ clone()
Rectangle
- w, h
+ clone()
Clone, don't rebuild
1interface Shape {2 Shape clone(); // every shape can copy itself3}4class Circle implements Shape {5 int radius; Color color;6 public Shape clone() {7 return new Circle(radius, color); // same field values8 }9}
State
contractclone(): Shape