这个实现看起来没问题,假设现在这个类提供的信息不够使用,我们又创建了这个类的一个子类CompanyDetail类用以扩展他。例如我们想以一个表的形式显示公司的信息,我们就可以用这个类。
public class CompanyDetails extends Company {
private final String marketingName;
private final Double marketValue;
public CompanyDetails(final String id, final String officialName, final String marketingName, final Double marketValue) {
super(id, officialName);
this.marketingName = marketingName;
this.marketValue = marketValue;
}
public String getMarketingName() {
return marketingName;
}
public Double getMarketValue() {
return marketValue;
}
@Override
public int hashCode() {
HashCodeBuilder builder = new HashCodeBuilder(19, 31);
builder.appendSuper(super.hashCode());
builder.append(this.getMarketingName());
return builder.toHashCode();
}
@Override
public boolean equals(final Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof CompanyDetails)) {
return false;
}
CompanyDetails other = (CompanyDetails) obj;
EqualsBuilder builder = new EqualsBuilder();
builder.appendSuper(super.equals(obj));
builder.append(this.getMarketingName(), other.getMarketingName());
builder.append(this.getMarketValue(), other.getMarketValue());
return builder.isEquals();
}
}