Scala 专题教程-抽象成员(2): Type成员

jerry Scala 2015年11月25日 收藏

Scala中抽象类型,指的是在类或Trait中使用type定义的类型。 类或trait 本身也可以使用abstract来定义,但这种使用abstract定义的类和Trait在Scala中不称为抽象类型。
你可以把派生于抽象类型的 非抽象类型,比如前面例子Concrete中的类型T,看作给一个类型起一个别名。比如 Concrete类定义中String类型的别名为T。 因此在Concrete中所有出现T的地方都代表String,因此前面的Concrete其实也可以写成:

  1. class Concrete extends Abstract {
  2. type T = String
  3. def transform(x:T) = x + x
  4. val initial = "hi"
  5. var current = initial
  6. }

我们将在后面再详细介绍抽象类型的用法。