A functional interface is an interface with exactly one abstract method. Default and static methods do not count, and neither do abstract methods that match public methods of Object such as equals. Because there is only one abstract method, a lambda or method reference can supply its body. The optional @FunctionalInterface annotation makes the compiler check the rule. The package java.util.function supplies ready-made interfaces so you rarely need to write your own.
Keep reading for free
Create a free StudyToCert account to read the rest of this lesson: 5 more sections, 5 key terms, a real-world example, an exam tip and self-check questions. Every lesson, lab and practice test is free with an account.