class A
class B extends A
class D { def get: A = ??? }
class E extends D { override def get: B = ??? } // OK
class F { def set(b: B): Unit = ??? }
class G extends F { override def set(a: A): Unit = ??? } // Compile Error, override nothing
我的问题是为什么G不起作用,考虑到以下条件:(A=>Unit)是(B=>Unit)的子类型。
implicitly[(A => Unit) <:< (B => Unit)]