interface I { static void foo() { } } class A implements I { { System.out.println(A./*c1*/foo()); Runnable r = A/*c2*/::foo; System.out.println(r); } } class B { static void foo() {} } class C extends B { { Runnable r = C::foo; } }