我在看scaladocs的时候 AbstractSeq 班级。他们把它描述为 Explicit instantiation of the Seq trait to reduce class file size in subclasses. 如何减少子类的文件大小?子类会得到所有的方法,对吗?有人能解释一下这是怎么回事吗
AbstractSeq
Explicit instantiation of the Seq trait to reduce class file size in subclasses.
5w9g7ksd1#
当您直接扩展trait时,类会为trait中实现的每个方法获取一个方法。假设你有 N 在中实现的方法 Seq (1)特点 Seq 自身延伸)。如果你有 M 类扩展 Seq ,他们需要 M*N 方法。当它们延伸时 AbstractSeq , AbstractSeq 有 N 方法和所有其他类继承它们。所以你用一节额外的课来换取 (M-1)*N 更少的方法。
N
Seq
M
M*N
(M-1)*N
1条答案
按热度按时间5w9g7ksd1#
当您直接扩展trait时,类会为trait中实现的每个方法获取一个方法。
假设你有
N
在中实现的方法Seq
(1)特点Seq
自身延伸)。如果你有M
类扩展Seq
,他们需要M*N
方法。当它们延伸时AbstractSeq
,AbstractSeq
有N
方法和所有其他类继承它们。所以你用一节额外的课来换取(M-1)*N
更少的方法。