我正在浏览scaladocs并遇到了AbstractSeq类。他们形容为
Explicit instantiation of the Seq trait to reduce class file size in subclasses.
这如何减少子类的文件大小?子类将获得所有方法,对吗?有人可以解释这是如何工作的

最佳答案

当直接扩展特征时,该类将为每个方法都具有一个在特征中实现的方法。

因此,假设您有N方法,并在Seq中实现了(并且Seq特性本身已扩展)。如果您有M类扩展了Seq,则它们需要M*N方法。当它们扩展AbstractSeq时,AbstractSeq具有N方法,所有其他类都继承它们。因此,您可以用1个额外的类来换取(M-1)*N更少的方法。

09-25 20:52