1 <p> This class defines an equals method that overrides an equals method in a superclass. Both equals methods
2 methods use <code>instanceof</code> in the determination of whether two objects are equal. This is fraught with peril,
3 since it is important that the equals method is symmetrical (in other words, <code>a.equals(b) == b.equals(a)</code>).
4 If B is a subtype of A, and A's equals method checks that the argument is an instanceof A, and B's equals method
5 checks that the argument is an instanceof B, it is quite likely that the equivalence relation defined by these
6 methods is not symmetric.