All of them mean "flood". However, there might be a slight difference between them. But the dictionary isn't helpful. It seems "Flut", the most look-alike word in English, actually denotes "high tide", thanks to Google Images.
literal: high water
This word describes the state when the water level of a river or a lake is significant higher than usual. The opposite is Niedrigwasser (literal: low water). This is a condition of the water body and doesn't tell anything about its influence on the land next to it. It is Hochwasser even if all the water still stays in the river or lake. All that counts is the significant higher water level.
Meaning 1 (main meaning)
in English: high tide
- High tide = Flut
- Low tide = Ebbe
These are the normal rise and fall of sea levels induced by the combined effects of the gravitational forces exerted by the Moon and the Sun, and the rotation of the Earth.
Meaning 2 (less often used)
Synonym for Überschwemmung
The German verb schwemmen means: to flood, to float, to wash, to water, to soak, to rinse. etwas überschwemmen means to cover something with water. So, eine Überschwemmung is the state when land, that normally is dry (i.e. not under water), is now covered with water.
A synonym for Überschwemmung is Überflutung.
An Überschwemmung is an abnormal state, almost always combined with disadvantage to the owner of the land (same for Flut when it is a synonym of Überschwemmung).
A Flut (in meaning 1) is a normal condition of the sea, that normally doesn't cause any harm or damage.
A Hochwasser is an abnormal state of a water body that may or may not have negative consequences to the neighboring land.
Hochwasser is literally just high water. Typically, this means that the water level in a body of water is higher than average. For example, a river in my hometown has a level gauge at one spot (very simple design, it’s but a ruler fixed to some concrete) which anyone can access. So when walking the dog I would check the level for fun. The usual level was 55–60 cm but after periods of heavy rain or when the snow in the mountains melted in late spring it might rise to 100 cm. This would be Hochwasser – but this posed no danger to anybody because the embankment on either side was about 4 m above the river bed.
Hochwasser also applies to the sea. High tide is Tidenhochwasser (Tide is the German word for tide) but one can omit the Tide if it is not necessary for clarity.
Flut is closely related to the verb etwas fluten which means to flood something. Technically, this is derived from the movement of the water as it proceeds to flood whatever it is flooding, so the Flut would be the process of the water crossing any levees meant to contain it and flowing into the land behind.
It can also mean a large mass of water flowing with a strong current. If, for example, a reservoir behind a dam needs to be emptied because large amounts of rain are expected upstream, one can describe the water leaving the reservoir and its movement downstream as die Fluten (usually plural). Note that in this example the Flut part also refers to something that does not result in any water being outside of the usual riverbed.
Furthermore, fluten, the verb, and eine Flut, the noun, can be used figuratively when referring to a large influx of something. For example, if a politician proposes an unpopular measure, they might suddenly be facing ‘eine Flut von Beschwerden’.
Finally, when referring to the sea die Flut technically and correctly refers to rising tide (i.e. water coming in or any moment in time between low tide and high tide) but colloquially nowadays also refers to high tide itself (although that is technically Hochwasser as noted above). Spring tide and storm tide are translated as Springflut and Sturmflut, so these two words also use Flut.
Überschwemmung derives from the verb überschwemmen which in turn derives from the verb schwemmen. Schwemmen means to soak something (with water). To go from there to überschwemmen, the prefix über- does what it usually does: the prefixed verb now means soaking something by water flowing over it (and usually staying there). This word is different from the other two in that it practically always refers to a state where water is where it should not be.
These three words aren’t the only words to describe flooding; for example, Überflutung is also somewhat commonly used.
Furthermore, if you look at real-world examples like the Wikipedia article about the floods of 2002, you will notice that the three words are used back and forth to describe the flooding with übersch- leading to a slightly smaller number of search results than flut or hochw-. Thus, any differences between the three (or others) are usually technicalities, nuances or something along that line.