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]
容器类地球扩展容器[地球]
特征虚拟[EtraitDummy[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)