### Question:
BasicWeapon implements Weapon, DisplayableWeapon { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof BasicWeapon)) { return false; } BasicWeapon other = (BasicWeapon) obj; if (!other.canEqual(this)) { return false; } if (this.getLabel() == null ? other.getLabel() != null : !this.getLabel().equals(other.getLabel())) { return false; } return true; } BasicWeapon(String label);  BasicWeapon(String label, String symbol); String getLabel(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); @Override String getSymbol();  }### Answer:
@Test public void testEqualObjects() { Weapon weapon1 = new BasicWeapon("weapon", "W1"); Weapon weapon2 = new BasicWeapon("weapon", "W2"); Weapon weapon3 = new BasicWeapon("anotherWeapon", "W2"); assertTrue(weapon1.equals(weapon1)); assertTrue(weapon1.equals(weapon2)); assertTrue(weapon2.equals(weapon1)); assertFalse(weapon1.equals(weapon3)); assertFalse(weapon3.equals(weapon1)); }