why are subobjects defined to be equivalence classes of objects, instead of just objects? In category theory, a subobject of object $A$ is defined to be an equivalence class of isomorphic monomorphisms into $A$. Does this seem weird to anyone else? Isn't it normal to allow something to be only defined "up to isomorphism"? Sure, we could define a product to be the equivalence class of objects satisfying the universal property, but then it wouldn't live in our category. And it may well be a proper class. No one defines limits this way, why do we do this for subobjects and quotient objects?
If we just defined a subobject of $A$ to be a monomorphism into $A$, then the class of subobjects of $A$ would only be a preorder, instead of a poset. So what?
 A: 
@QiaochuYuan and MarianoSuárez-Alvarez: so the reason is just so the collection of subobjects will be a proper set. Is there a reason why we this matters for subobjects but not for, say, equalizers? With my definition, we could say that equalizers are subobjects, and the set of equalizers of any two arrows would be a proper class.

– Ziggurism May 30 '12 at 14:46

@[Ziggurism]: yes, but when are you ever going to talk about the collection of all equalizers? On the other hand, you really do often talk about the collection of all subobjects (e.g. the lattice of subsets of a set, the lattice of subspaces of a vector space).

– Qiaochu Yuan May 30 '12 at 14:50
A: The question is ancient, but IMHO the most convincing answer is missing:
The definition of "subobject in a category $\mathcal{C}$" is chosen in such a way that it generalize the notion of $k$-vector subspaces (when $\mathcal{C} = \mathsf{Vect}_k$), the notion of subsets (when $\mathcal{C} = \mathsf{Set}$), the notion of subrings (when $\mathcal{C} = \mathsf{Ring}$), and lots of other classical "sub-something" notions that appear throughout mathematics (probably not all of them, though). If you were to define "subobjects of $A \in \mathcal{C}$" to mean "monomorphisms with codomain $A$", then the notion of a subobject would not generalize all of these classical notions, because you get too many different subobjects that correspond to the same "sub-something". For instance, in $\mathsf{Set}$, the monomorphisms $\emptyset \to \left\{1\right\}$, $\left\{1\right\} \to \left\{1\right\}$ and $\left\{2\right\} \to \left\{1\right\}$ would be three different subobjects of the object $\left\{1\right\}$, but there are only two subsets of the set $\left\{1\right\}$. So this would be a bad definition.
However, if you define subobjects of $A \in \mathcal{C}$ to be isomorphism classes of monomorphisms with codomain $A$ (where "isomorphism" is to be correctly interpreted: an isomorphism between two monomorphisms $\alpha : S \to A$ and $\alpha^{\prime} : S^{\prime} \to A$ means a morphism $s : S \to S^{\prime}$ satisfying $\alpha = \alpha^{\prime} \circ s$), then, in all of the examples listed above, the subobjects of $A$ are in a canonical bijection with the "sub-somethings" (i.e., the $k$-vector subspaces, or the subsets, or the subrings). For instance, in $\mathsf{Set}$, the subobjects of a set $A$ are the isomorphism classes of monomorphisms with codomain $f$. The isomorphism class of such a monomorphism $f : S \to A$ can be identified with the subset $f\left(S\right)$ of $A$. Thus, the subobjects of $A$ are in bijection with the subsets of $A$ here. The same construction works for rings and for $k$-vector spaces.
The good definition of a subobject also has the advantage (compared with the bad definition) that the subobjects of a given object $A \in \mathcal{C}$ often form a set (as opposed to just a class). I don't personally find this vital; it is not usually true in constructive mathematics anyway, and I don't believe that a definition is necessarily bad just because it sometimes returns proper classes.
