In two dimensions, any lattice can be specified by the length of its two primitive translation vectors and the angle between them. There are an infinite number of possible lattices one can describe in this way. Some way to categorize different types of lattices is desired. One way to do so is to recognize that some lattices have inherent symmetry. One can impose conditions on the length of the primitive translation vectors and on the angle between them to produce various symmetric lattices. These symmetries themselves are categorized into different types, such as point groups (which includes mirror symmetries, inversion symmetries and rotation symmetries) and translational symmetries. Thus, lattices can be categorized based on what point group or translational symmetry applies to them.
In two dimensions, the most basic point group corresponds to rotational invariance under 2π and π, or 1- and 2-fold rotational symmetry. This actually applies automatically to all 2D lattices, and is the most general point group. Lattices contained in this group (technically all lattices, but conventionally all lattices that don't fall into any of the other point groups) are called oblique lattices. From there, there are 4 further combinations of point groups with translational elements (or equivalently, 4 types of restriction on the lengths/angles of the primitive translation vectors) that correspond to the 4 remaining lattice categories: square, hexagonal, rectangular, and centered rectangular. Thus altogether there are 5 Bravais lattices in 2 dimensions.
Likewise, in 3 dimensions, there are 14 Bravais lattices: 1 general "wastebasket" category (triclinic) and 13 more categories. These 14 lattice types are classified by their point groups into 7 lattice systems (triclinic, monoclinic, orthorhombic, tetragonal, cubic, rhombohedral, and hexagonal).