Submit via Blackboard.
Liskov's implementation of
Point3 class (see figure 7.16, page 182)
We know this must be true
Point2 is instantiable
Point3 adds client-visible state (namely the z coordinate).
Hence, of the three properties
(Liskov substitution principle, symmetry, and transitivity),
only two are possible.
Your assignment is to figure out which property is broken.
Demonstrate your result with a suitable JUnit test.
You'll have to fill in enough of the
classes to make them functional,
including constructors and an overridden
You should code the
equals() method in
with Bloch's standard recipe.
Point3classes appropriately coded.