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其实也可以写成:

class Concrete extends Abstract {
	type T = String
	def transform(x:T) = x + x
	val initial = "hi"
	var current = initial
}

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