【发布时间】:2011-09-03 18:22:23
【问题描述】:
我尝试覆盖这个方法
def sum[B >: A](implicit num: Numeric[B]): B = ...
在 A 类型已固定为 Int 的子类中。
我已经试过了
override def sum: Int = ...
但这当然不会覆盖,导致运行时基于动态类型的不同方法解析。
走得更远,
def sum[B >: Int](implicit num: Numeric[B]): Int
确实覆盖,而
def sum[B >: Int](implicit num: Numeric[Int]): Int
没有,以及
def sum(implicit num: Numeric[Int]): Int
为什么会这样?是否有可能摆脱多余的绑定B?
我不确定哪些类型和隐式可以省略,哪些必须保留以使方法仍然覆盖。
【问题讨论】:
标签: generics scala methods overriding implicit