What's the difference between .renderer and MeshRenderer?

What’s the difference between renderer (i.e. gameObject.renderer) and MeshRenderer (i.e. gameObject.GetComponent(MeshRenderer))?

Much Thanks.

think of MeshRenderer as the wire frame that makes your gameobject and renderer as the paint job you can see on your gameobject