And to complement deamon and Daniel , here's another:
abstract class A { def f: (Int)=>Int } class B extends A { val f = identity _ } class C extends A { def f = identity _ } class D extends A { def f = (x:Int) => -x }
If you are stuck with a normal def value, then the best you can do is
abstract class Z { def f(x:Int):Int } class Y extends Z { def f(x:Int) = identity(x) }
source share