@Override public boolean equals(Object o){
  if (this == o) {
    return true;
  }
  if (o == null) {
    return false;
  }
  if (!(o instanceof Column)) {
    return false;
  }
  Column column=(Column)o;
  return Objects.equals(name,column.name);
}

@ Override public boolean equals ( Object o ) { if ( this == o ) { return true ; } if ( o == null ) { return false ; } if ( ! ( o instanceof Column ) ) { return false ; } Column column = ( Column ) o ; return Objects . equals ( name , column . name ) ; }
allows comparison based solely on the name between objects of the base class and / or any of the derived classes .
