Interfete functionale
O interfata cu o singura metoda abstracta se numeste interfata functionala.
Adnotatia @FunctionalInterface a fost introdusa pentru a marca o interfata functionala. Adaugarea ceste adnotari previne eventualele adaugari accidentale de metode multiple intr-o interfata care se doreste a fi de tip functional dar in esenta orice interfata cu o singura metoda este interfata functionala si adnotarea @FunctionalInterface nu este obligatorie.
@FunctionalInterface interface Shape{ public void draw(); } class ShapeImpl implements Shape { @Override public void draw() { System.out.println("Drawing shape!"); } }
Aceste interfete sunt utile in special in cadrul expresiilor lambda.