Added abstract equals() and hashCode() to force implementations on
childrens.
Implemented hashCode() and equals().
Implemented hashCode() and equals().
Implemented hashCode() and equals()