Listing 1: Barbara Liskov, Program Development in Java, page 182

public class Point3 extends Point2 {
  private int z;
  ...
  public boolean equals(Object p) { // overriding definition
    if (p instanceof Point3) return equals((Point3)p);
    return super.equals();
  }
  public boolean equals(Point2 p) { // overriding definition
    if (p instanceof Point3) return equals((Point3)p);
    return super.equals();
  }
  public boolean equals(Point3 p) { // extra definition
    if (p==null || z!=p.z) return false;
    return super.equals();  
  }
  ...
}
— End of Listing —