The notion of a [$2$-category](https://en.wikipedia.org/wiki/Strict_2-category) generalizes that of category by considering "morphisms between morphisms". In other words, it is a category enriched over $\mathbf{Cat}.$ It generalizes further in higher category theory to $n$-categories, which have $k$-morphisms for all $k\le n.$ However this should not confused with the (related) notion of [double categories.](https://ncatlab.org/nlab/show/double+category)

In category theory, a (strict) 2-category is a category with "morphisms between morphisms"; that is, where each hom-set itself carries the structure of a category. It can be formally defined as a category enriched over the cartesian monoidal category $\mathbf{Cat}$ (the category of categories and functors, with the monoidal structure given by product of categories).

There are two different ways that we can compose $2$-morphisms: along objects (1-cells) called horizontal composition and along morphisms (2-cells) called vertical composition. Since horizontal composition is a functor between hom-categories, there is an interchange law between these two compositions. Also, depending on how strong we need composition of $2$-cells to be, there are two different versions of $2$-categories.

  1. In a strict $2$-category composition operation on adjacent $1$-cells and $2$-cells are strictly unital and associative.

  2. In a weak $2$-category (bicategory), composition of $1$-morphisms is required to be associative and unital only up to coherent associator and (left and right) unitor natural isomorphisms respectively. This is the concept that people encounter in most applications.

In other words, a strict $2$-category is a bicategory in which the associator, left and right unitors are identity natural transformations. On the other hand, every bicategory can be strictified to obtain a strict $2$-category.