I think the better approach is to know what is a Functor before asking about Monads.
A Functor is a Higher Kinded Type/Type Constructor/Function at the type level that has a certain shape (that is, it implements a map function). A Functor is also what's known as a typeclass. A Monad is also a typeclass
Typeclasses are a form of ad-hoc polymorphism that let you add functionality to existing code that you may or may not have written.
Here's is the basic definition of a Functor
trait Functor[F[_]] {
def map[A, B](fa: F[A])(f: A => B): F[B]