Waterlogging

Waterlogging is the mechanic that allows non-cube blocks (that is, blocks that do not completely fill their block volume, such as doors, ladders, and plants) to be filled with a water source block. Both the non-cube block and the water source block occupy the same space. If the non-cube block is destroyed, the water source block remains.

$$, generally all non-cube blocks can be waterlogged and none can be used to displace water source blocks, although they can still displace flowing water.

Mechanism
$$, certain blocks have a block state that can be. This is a temporary solution; a full separation of blocks and fluids is planned.

$$, when the waterlogging block that can be pushed by the piston fails to be recovered within 2 ticks, the waterlogging state of the block is eliminated. Otherwise, the block can retain the waterlogging state. This feature can be used in the circuit of a "piston worm". It is an alternative solution that the dispenser cannot be pushed by the piston $$.

$$, waterlogging is handled by the game's layers system. Through editing, any block can be waterlogged, as well as other things such as placing multiple slabs into a single block. In normal gameplay, a player cannot displace water source blocks using doors or other non-cube blocks to create breathing spaces underwater, like one can do in Java Edition. Only flowing water can be displaced in Bedrock Editon.

Behavior
Section may be incomplete.

See for more info on Java Edition.

Trivia

 * In Java Edition, glass bottles can be filled up with water from waterlogged blocks, even if water is not accessible from the targeted area. In Bedrock Edition, this is not possible because waterlogged blocks in general cannot be used to fill empty bottles.