It is a natural exercise to check how a presheaf is a contravariant functor from a category of open sets to an abelian category $\mathcal{C}$, that is
$$\mathfrak{F} \colon {\mathrm Cat_{Open} (X)} \rightarrow \mathcal{C}$$
where the ${\mathrm Cat_{Open} (X)}$ is the category of open sets $U \subset X$ and $X$ is a topological space. We can easily understand why presheaf would be a 'contravariant functor' for these open sets categories by checking the inclusion and restriction morphisms.
For $X \subset V$ and $X,V \subset X$, we have the restriction morphism
$$f \colon \mathfrak{F}(V) \rightarrow \mathfrak{F}(U)$$
which is rather very straight from our intuition in the 'practice' of the inclusion of sets and restriction maps from it. Or it may be said that the restriction maps are the morphisms to check in the category of presheaves $Psh(\mathcal{C})$ to see if the functor is contravariant or covariant. (A morphism between presheaves are rather the natural transformation of functors.) Since one also naturally defines, for example, in SGA IV
$$\mathfrak{F} \colon \mathcal{C}^{\mathrm Opp} \rightarrow {\mathrm Cat}$$
where $\mathcal{C}^{\mathrm Opp}$ is the opposite category, so one has the opposite arrow of morphisms, which is, if it helps, equivalent to imagining any 'restriction' like situations. It is easy to apply this thought in some categories; however, it is unsettling for some others.
We also think in terms of pullbacks, which is more natural for espace étalé description.