Section 7.9 of "Core Web Programming"
You can read details of this example in the textbook.
Shape.java
Curve.java
StraightEdgedShape.java
Measurable.java
Circle.java
Polygon.java
Rectangle.java
MeasureUtil.java
MeasureTest.java
An archive of all java files mentioned above in ZIP format:
interfaces.zip