java override when implementing interface