In mathematics, specifically category theory, a **subcategory** of a category *C* is a category *S* whose objects are objects in *C* and whose morphisms are morphisms in *C* with the same identities and composition of morphisms. Intuitively, a subcategory of *C* is a category obtained from *C* by "removing" some of its objects and arrows.

Let *C* be a category. A **subcategory** *S* of *C* is given by

- a subcollection of objects of
*C*, denoted ob(*S*), - a subcollection of morphisms of
*C*, denoted hom(*S*).

such that

- for every
*X*in ob(*S*), the identity morphism id_{X}is in hom(*S*), - for every morphism
*f*:*X*→*Y*in hom(*S*), both the source*X*and the target*Y*are in ob(*S*), - for every pair of morphisms
*f*and*g*in hom(*S*) the composite*f*o*g*is in hom(*S*) whenever it is defined.

These conditions ensure that *S* is a category in its own right: its collection of objects is ob(*S*), its collection of morphisms is hom(*S*), and its identities and composition are as in *C*. There is an obvious faithful functor *I* : *S* → *C*, called the **inclusion functor** which takes objects and morphisms to themselves.

Let *S* be a subcategory of a category *C*. We say that *S* is a **full subcategory of** *C* if for each pair of objects *X* and *Y* of *S*,

A full subcategory is one that includes *all* morphisms in *C* between objects of *S*. For any collection of objects *A* in *C*, there is a unique full subcategory of *C* whose objects are those in *A*.

- The category of finite sets forms a full subcategory of the category of sets.
- The category whose objects are sets and whose morphisms are bijections forms a non-full subcategory of the category of sets.
- The category of abelian groups forms a full subcategory of the category of groups.
- The category of rings (whose morphisms are unit-preserving ring homomorphisms) forms a non-full subcategory of the category of rngs.
- For a field
*K*, the category of*K*-vector spaces forms a full subcategory of the category of (left or right)*K*-modules.

Given a subcategory *S* of *C*, the inclusion functor *I* : *S* → *C* is both a faithful functor and injective on objects. It is full if and only if *S* is a full subcategory.

Some authors define an **embedding** to be a full and faithful functor. Such a functor is necessarily injective on objects up to isomorphism. For instance, the Yoneda embedding is an embedding in this sense.

Some authors define an **embedding** to be a full and faithful functor that is injective on objects.^{[1]}

Other authors define a functor to be an **embedding** if it is
faithful and
injective on objects.
Equivalently, *F* is an embedding if it is injective on morphisms. A functor *F* is then called a **full embedding** if it is a full functor and an embedding.

With the definitions of the previous paragraph, for any (full) embedding *F* : *B* → *C* the image of *F* is a (full) subcategory *S* of *C*, and *F* induces an isomorphism of categories between *B* and *S*. If *F* is not injective on objects then the image of *F* is equivalent to *B*.

In some categories, one can also speak of morphisms of the category being embeddings.

A subcategory *S* of *C* is said to be **isomorphism-closed** or **replete** if every isomorphism *k* : *X* → *Y* in *C* such that *Y* is in *S* also belongs to *S*. An isomorphism-closed full subcategory is said to be **strictly full**.

A subcategory of *C* is **wide** or **lluf** (a term first posed by Peter Freyd^{[2]}) if it contains all the objects of *C*.^{[3]} A wide subcategory is typically not full: the only wide full subcategory of a category is that category itself.

A **Serre subcategory** is a non-empty full subcategory *S* of an abelian category *C* such that for all short exact sequences

in *C*, *M* belongs to *S* if and only if both and do. This notion arises from Serre's C-theory.