Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 澄清为什么我不能通过泛型类参数的子类型重写使用泛型类参数的方法_Scala_Oop_Inheritance_Overriding - Fatal编程技术网

Scala 澄清为什么我不能通过泛型类参数的子类型重写使用泛型类参数的方法

Scala 澄清为什么我不能通过泛型类参数的子类型重写使用泛型类参数的方法,scala,oop,inheritance,overriding,Scala,Oop,Inheritance,Overriding,鉴于以下情况() trait元素 类接地元件 特征容器[T] 容器类地球扩展容器[地球] 特征虚拟[EtraitDummy[E]我完全承认一个事实,即前提条件在一个子类型中无法得到加强。唯一值得关注的是,ContainerEarth可以替代Container[Earth]。。。 trait Element class Earth extends Element trait Container[T] class ContainerEarth extends Container[Earth] t

鉴于以下情况()

trait元素
类接地元件
特征容器[T]
容器类地球扩展容器[地球]

特征虚拟[Etrait
Dummy[E]我完全承认一个事实,即前提条件在一个子类型中无法得到加强。唯一值得关注的是,ContainerEarth可以替代Container[Earth]。。。
trait Element
class Earth extends Element

trait Container[T]
class ContainerEarth extends Container[Earth]

trait Dummy[E <: Element] {

  def dummy(container: Container[E]): Any
}

class EarthDummy extends Dummy[Earth] {

  def dummy(container: ContainerEarth): Any = ??? // could not override
  override def dummy(container: Container[Earth]): Any = ???
}
trait Dummy[E <: Element, C <: Container[E]] {

  def dummy(container: C): Any
}
class AnotherContainerEarth extends Container[Earth]

new DirtDummy().dummy(new AnotherContainerEarth)