### Question:
String extends Message { @Override public String clone() { return new String(this.data); } String();  String(java.lang.String data); java.lang.String getData(); @Override String clone(); static String fromJsonString(java.lang.String jsonString); static String fromMessage(Message m); static String fromJsonObject(JsonObject jsonObject); static final java.lang.String FIELD_DATA; static final java.lang.String TYPE; }### Answer:
@Test public void testClone() { String clone = s1.clone(); assertEquals(s1.toString(), clone.toString()); assertEquals(s1.toJsonObject(), clone.toJsonObject()); assertEquals(s1.getMessageType(), clone.getMessageType()); assertEquals(s1.getData(), clone.getData()); assertNotSame(s1, clone); assertNotSame(s1.toString(), clone.toString()); assertNotSame(s1.toJsonObject(), clone.toJsonObject()); }