@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof AbstractFlower)) {
            return false;
        }

        AbstractFlower other = (AbstractFlower) o;

        if (id != other.id) {
            return false;
        }
        if (Double.compare(other.price, price) != 0) {
            return false;
        }
        if (stemLength != other.stemLength) {
            return false;
        }
        if (color != null ? !color.equals(other.color) : other.color != null) {
            return false;
        }
        return true;

    }