我正在经历scaladocs并遇到AbstractSeq
课程。他们将其描述为
Explicit instantiation of the Seq trait to reduce class file size in subclasses.
这如何减少子类的文件大小?无论如何,子类将获得所有方法吗?有人可以解释这是如何工作的
答案 0 :(得分:4)
当您直接扩展特征时,该类会为每个方法获取一个方法,并在特征中实现。
所以,让我们假设您在N
中使用Seq
方法实现(并且特征Seq
本身扩展)。如果您有M
个类延伸Seq
,则需要M*N
个方法。当他们扩展AbstractSeq
时,AbstractSeq
有N
个方法,所有其他类都继承它们。因此,为(M-1)*N
个方法减少1个额外的课程。