特质的定义
特质定义使用关键字trait
trait CarId{
var id: String
def currentId():Int
}
上面定义了一个Trait,里面包含一个抽象字段id和抽象方法currentid。注意,抽象方法不需要使用abstract关键字,特质中没有方法体的方法,默认就是抽象方法。
trait定义好之后,就可以使用extends或with关键字将trait混入类中进行使用,比如:
class BYDCarId extends CarId{
override var id = 10000
def currentId():Int = {id += 1; id}
}
class BMWCarId extends CarId{
override var id = 20000
def currnetid():Int = {id += 1; id}
}
使用extends关键字混入第一个特质,后面可以反复使用with关键字混入更多特质。如:
class BYDCarId extends CarId with CarGreeting{}