How can Predicate be considered and used as a functional interface when it has several abstract methods? For example: As well as test(T t); it has:
and(Predicate<? super T> other), negate() and isEqual(Object targetRef ).
This question is not a duplicate: I am already aware of the answers given for comparator, but they do not apply here because negate and and are not inherited from the Object class or any super class.