### Question:
IntegerTime implements Time { @Override public Time clone() { return new IntegerTime(this.time); } IntegerTime();  IntegerTime(int time); @Override boolean equals(Time t); @Override int hashCode(); @Override boolean equals(Object obj); @Override void increment(); @Override void setTime(Time t); @Override String toString(); @Override Time clone(); @Override boolean greaterThan(Time t); @Override int intValue();  }### Answer:
@Test public void testClone() { Time t1 = new IntegerTime(rand.nextInt()); Time t2 = t1.clone(); assertTrue("equals of cloned IntegerTime should be true", t1.equals(t2)); assertNotSame("Cloned objects should not reference the same object", t2, t1); }