A morphism is monic if it admits a form of cancellation. Whenever two morphisms g and h lead into the source of a third morphism f, and gf = hf, then g = h. Applying f loses no information.
If f is a function on T, and g and h map an arbitrary set S in to T, we can write it this way, using functional notation.
f(g(S)) = f(h(S)) → g(S) = h(S)
Expressing it as functions can clear things up a bit, but remember, the definition transcends concrete categories.
In a concrete category, it is enough to know that f is 1-1. The action of f can be reversed, i.e. undone, to show that g = h. Every monomorphism, or injection (in the category of sets), is monic.
If a concrete category includes a free object for each cardinality, then monic morphisms are indeed monomorphisms. We already showed 1-1 implies monic; let's demonstrate the converse. Suppose f is monic, yet it maps x and y to z. Let P be a free object with generators a and b. Map a and b to x and y respectively. Since P is free, the morphism ffollows. Another morphism carries a to y and b to x. Call these morphisms g and h. These are distinct, yet gf and hf both map a and b to z. Since P is free, the two morphisms follow, and they must agree. Thus gf = hf, which is a contradiction. As long as there is a free object on two generators, monic and monomorphism are synonymous.
An epic morphism admits cancellation on the other side. Let f be a morphism into an object T. If g and h are morphisms from T to some other object S, and fg = fh then g = h. If the category is concrete, and f is onto, i.e. an epimorphism, then f is epic. If g and h map x to different points, and y is in the preimage of x, then g(f(y)) will not equal h(f(y)).
The converse is almost always true, but you have to take it case by case. Let's look at sets first. If f maps the set S into T, missing the element v, build a new set containing w x and y. Let g map all of T to w except for v, which maps to x. Let h map all of T to w except for v, which maps to y. Now fg = fh, yet g ≠ h.
The same proof works for topological spaces, as long as we give our 3 element set the indiscrete topology, so that g and h are continuous.
For modules, apply a homomorphism to T that has the image of f as kernel. Call the resulting quotient Q. Let M be the direct product Q*Q. Let g map T onto the first copy of Q, and let h map T onto the second. Thus fg = fh = 0 in M, yet g and h are not the same.
In the world of groups, we can apply the same proof when the image of f lies in a proper normal subgroup of T. I'm not sure what to do otherwise.
For rings, T becomes a ring extension of the image of f. Let v lie outside the image of f. Make a new ring that looks like T, but either x or y can play the role of v. Both are transcendental over the image of f, or both satisfy the same polynomial. They interact symbolically. That is, x times y is simply xy. Now g and h can map T into our new ring, carrying v to x or to y, yet fg = fh.
If T is a field extension of the image of f, let v lie outside the image of f. If v is transcendental, apply the above proof. Remember to take the fraction field of our new ring with x and y, so that it becomes a field. If v is algebraic, let g be the identity map on T, and let h move v to one of its conjugates. Note, there is a rare situation where v equals all its conjugates, and this creates an epic morphism that is not onto. If g and h carry the image of f to the same field, they have to map v to one particular element, the Pth root of some fixed x in g(f(S)).
The identity map is monic and epic.
If f is an equivalence, compose f with f inverse to demonstrate cancellation on either side, hence f is both monic and epic. This is not surprising; an isomorphism is both a monomorphism and an epimorphism. In a concrete category, the converse usually holds. A monomorphism and an epimorphism is completely reversible, and the inverse function almost always obeys the rules of the category, creating an isomorphism.