The sheaf structure is a powerful idea that goes across many mathematical subjects and therefore it can be approached from different directions. We can go bottomup from sets or topdown from category theory. We will start with the origins in topology.
Presheaf on a Topological Space
We can have a presheaf of any structure 'A' on a topological space 'X'.
A presheaf of sets 'A' on 'X' is valid but it does not give much structure to relate the open sets. Something with an abelian group structure for example (such as vectors) gives us more structure to work with. More about open sets on page here.
A presheaf of abelian group 'A' on 'X' assigns to each open set UX an abelian group A(U). and that assigns to each pair UV of open sets a homomorphism called the restriction r_{U,V} : A(V) > A(U) 

in such a way that r_{U,U} = 1 (identity map) 

r_{U,V}r_{V,W} = r_{U,W} (composition) 
Presheaf in Category Theory
In category theory terms:
 X is a topological space
 A presheaf of abelian groups on X is a contravariant functor from the category of open subsets of X and inclusions to the category of abelian groups.
Let C=Top(X) the category whose objects are the open subsets of X. C can be represented as a poset of open sets in a topological space with the morphisms being inclusion maps.
In the same way as for fibres we usually reverse the arrow so that it is a contravarient arrow from C^{op} to Set: 
A presheaf on a category C is a functor F : C^{op}> Set
For instance a presheaf can be a contravariant functor from the category Top(X) to the category Ab of Abelian groups (which may also have more structure).
Sheaves are discussed from a category theory point of view on the page here.
Developing Fibre Bundle ApproachThe page here introduced fibre bundles. For example, where there is a family of types indexed by elements of another type. 

The type families in fibre bundles are disjoint. One way to extend that concept is to allow an overlapping type family. 
open sets  simplectical complex  
In some cases we can convert between open sets and simplices. see Wikipedia articles: 
Sheaf and CoSheaf
Allow us to translate between physical sources of data and open sets or simpicies.
sheaf  Cosheaf 

vertex weighted  hyperedge weighted 
vertex has nontrvial stalk.  toplex has nontrvial stalk. 
All restrictions are zero maps  All extensions are zero maps 
The resulting sheaf is flabby  The resulting cosheaf is coflabby 
Sheaf
A sheaf is a presheaf that satisfies the following two additional axioms:
 (Locality) If U is an open covering of an open set U , and if s , tF(U) have the property s  _{U i }= t  _{U i } for each set U_{i} of the covering, then s = t and
 (Gluing) If U is an open covering of an open set U, and if for each iI a section s_{i} is given such that for each pair U_{i} ,U_{j} of the covering sets the restrictions of s_{i} and s_{j} agree on the overlaps, so s _{i}  _{U i ∩ U j }= s _{j}  _{U i ∩ U j}, then there is a section sF ( U ) such that s  _{U i} = s_{i}for each iI.
Where the notation used is:
 s  _{U i} means s restricted to U i
 s is a section of the space over U
more notation see box on right.
Diagrams
We can think of this in a combinatorics way. The relations are shown more clearly in an attachment diagram here. This shows subset relations with the arrows going from lower dimension to higher dimension. 
A sheaf assigns some data spaces to the attachment diagram above. In this case reals (ℜ)  A sheaf of vector spaces. Each such set is called a stalk over the simplex.

Section  an assignment of values from each of the stalks that is consistent with the restrictions.
Sections can be:
 Global  defined everywhere.
 Local  defined for some part.
If all local sections extend to global sections the sheaf is called flabby/flasque (don't have interesting invariants).