@Override public boolean equals(Object o){
  if (this == o)   return true;
  if (o == null || getClass() != o.getClass())   return false;
  DeterministicKey other=(DeterministicKey)o;
  return super.equals(other) && Arrays.equals(this.chainCode,other.chainCode) && Objects.equal(this.childNumberPath,other.childNumberPath);
}

@ Override public boolean equals ( Object o ) { if ( this == o ) return true ; if ( o == null || getClass ( ) != o . getClass ( ) ) return false ; DeterministicKey other = ( DeterministicKey ) o ; return super . equals ( other ) && Arrays . equals ( this . chainCode , other . chainCode ) && Objects . equal ( this . childNumberPath , other . childNumberPath ) ; }
verifies equality of all fields but not the parent pointer ( thus the same key derived in two separate heirarchy objects will equal each other .
