在Scala标准库中,我注意到了这一点:
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]?
这里发生了什么?
答案 0 :(得分:5)
它正在扩展scala.collection.AbstractSeq
,而定义是scala.collection.mutable.AbstractSeq
,所以这些是不同的类。 (请注意不同的包名称:scala.collection
与scala.collection.mutable
。)
答案 1 :(得分:3)
他们是不同的班级。您正在查看的是scala.collection.mutable.AbstractSeq
,其扩展名为scala.collection.AbstractSeq
。
包是一种命名空间。只要它们位于不同的包中,不同的类可以具有相同的名称。