A
Functional interface is the one which has only one abstract method.
The method declared in functional interface must not a public member
of Object class.
A
simple example of a functional interface is:
interface
Runnable {
void
run();
}
The
following interface is not functional because it declares nothing
which is not already a member of Object.
interface
NonFunc {
boolean
equals(Object obj);
}
However,
its subinterface can be functional by declaring an abstract method
which is not a member of Object.
interface
Func extends NonFunc {
int
compare(String o1, String o2);
}
Similarly,
the well known interface java.util.Comparator<T> is functional
because it has one abstract non-Object method.
interface
Comparator<T> {
boolean
equals(Object obj);
int
compare(T o1, T o2);
}
1.
Both Interface1 and Interface2 are functional interfaces
@FunctionalInterface
interface
Interface1{
Object
getObject();
}
@FunctionalInterface
interface
Interface2 extends Interface1{
String
getObject();
}
Program
compiles fine. Since return types are covariantly equivalent,
Interface2 Overrides the method in Interface1.
Related
Links
No comments:
Post a Comment