Original User: helyxsisltd
I can't promise it's the most efficient method, but you could set up a model that effectively does the following:
With your water raster, use the Set Null tool in the Conditional toolset to set the value zero (not water) to null. Then use the Times tool in the Math Toolset to multiply by 9 (so giving "Raster W" where water = 9 and other = NoData)
With your class raster ("Raster C"), apply these tools from the Math Toolset in the following order:
IsNull, Boolean Not, Plus 1 (so giving "Raster P" where cells have a value 1 where "Raster C" held NoData and 2 where the "Raster C" held a value)
Now use Pick in the Conditional toolset as follows:
Pick("Raster P", "Raster W", "Raster C")
The Pick tool will choose from Raster W wherever Raster C is NoData or from Raster C wherever it holds a value already.
Convoluted, I know. Maybe there's a much simpler way...?