### Question:
PiePlot3D extends PiePlot implements Serializable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof PiePlot3D)) { return false; } PiePlot3D that = (PiePlot3D) obj; if (this.depthFactor != that.depthFactor) { return false; } if (this.darkerSides != that.darkerSides) { return false; } return super.equals(obj); } PiePlot3D();  PiePlot3D(PieDataset dataset); double getDepthFactor(); void setDepthFactor(double factor); boolean getDarkerSides(); void setDarkerSides(boolean darker); @Override void draw(Graphics2D g2, Rectangle2D plotArea, Point2D anchor,
                     PlotState parentState,
                     PlotRenderingInfo info); @Override String getPlotType(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testEquals() { PiePlot3D p1 = new PiePlot3D(); PiePlot3D p2 = new PiePlot3D(); assertEquals(p1, p2); assertEquals(p2, p1); p1.setDepthFactor(1.23); assertFalse(p1.equals(p2)); p2.setDepthFactor(1.23); assertEquals(p1, p2); p1.setDarkerSides(true); assertFalse(p1.equals(p2)); p2.setDarkerSides(true); assertEquals(p1, p2); }