Why do some rocks absorb water and some do not?

The porosity is affected by the space between the particles which make up the rock, Loosely packed rocks such as sandstone will soak up water or allow it to pass through, while granite, because of its tightly intertwined mineral constituents, is non-permeable.