我知道有关此错误还有许多其他问题,但是其他问题很清楚为什么会出现错误。就我而言,我不明白为什么。这是一个简短的例子:
trait A {
def text: String = "abc"
}
case object B extends A {
def text(s: Seq[String]): String = s.mkString
}
现在,调用B.text
我希望能明确解决从基本特征继承的方法,因为对象B中的一个甚至不匹配调用签名...但是,错误!
<console>:13: error: ambiguous reference to overloaded definition,
both method text in object B of type (s: Seq[String])String
and method text in trait A of type => String
match expected type ?
B.text
^
这是"正常"/预期的?
B.text
可以在一方面视为从特质 A
调用 text
方法,另一方面是从 B
中返回 Seq[String] => String