import java.util.function.Function; import java.util.function.IntFunction; class A { static void foo(Function f) {} } class B extends A { static void foo(IntFunction f) {} public static void main(String[] args) { foo(a -> "1"); } }