Java can recognise a functional interface, but you can define one by using an annotation.
@FunctionalInterface
There can only be one abstract method once the functional interface has been specified. You can create numerous dynamic methods and default methods because there is only one abstract method.