Scala的标准库中,我注意到了这一点:斯卡拉集合类可以扩展自己吗? AbstractSeq混乱
package scala
package collection
package mutable
import generic._
...
/** Explicit instantiation of the `Seq` trait to reduce class file size in subclasses. */
abstract class AbstractSeq[A] extends scala.collection.AbstractSeq[A] with Seq[A]
AbstractSeq[A] extends AbstractSeq[A] with Seq[A]?
这到底是怎么回事?
有两个问题。正在写“包scala 包集合 包可变”与“包scala.collection.mutable”相同吗?其次,这是什么“减少课堂文件大小”seq的事情? –
我只是猜测第二个问题,但通常'mutable.AbstractSeq'在大多数实现中也是'generic.Seq',尽管这些方法(实现了'Seq')在这个时候没有混合,那么也必须为其他实现类生成特征实现,所以如果你有5个具体类,那么你将有5倍的字节代码,而在这种情况下(因为虚拟调用)只有一次(和仍然能够覆盖它们)。 –