我正在浏览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
更少的方法。