As we know in Java 8, the concept of functional interfaces are introduced. A Functional Interface has one abstract
method and several default or static methods
Functional Interface lets us call an object as if it were a function, which lets us pass verbs(functions) around our program rather than nouns(objects). Implementations of Functional Interface perform a single well-defined action, as any method should, with a name like run, execute, perform, apply, or some other generic verb.[1]