当一个类或是Trait的成员没有定义完整的实现时,称为抽象成员。抽象成员需要在其子类中完成实现,在Scala中,抽象成员除了成员函数外,也可以说成员变量或是抽象类型。
本系列教程介绍四种抽象成员,vals, vars ,methods和types。
下面的例子定义了几种抽象成员:
trait Abstract { type T def transform(x:T) :T val initial :T var current :T }
这个例子定义了一个抽象类型T, 一个抽象方法transform, 一个抽象var current 和一个抽象val initial 。
派生的实类需要实现这些抽象成员,比如:
class Concrete extends Abstract { type T = String def transform(x:String) = x + x val initial = "hi" var current = initial }
这个类实现,给抽象类型T赋予了真实的类型String。然后为其它抽象成员给出了具体的定义。