Scala之Trait
Trait像拥有部分实现的接口,它提供一个介于单一继承和多重继承的中间地带,可以在其它类中混入它们,这样就可以用一组特性对类进行增强。
实例:
trait Friend {
val name: String
def listen() = println("You frient " + name + " is listening")
}
class Human(val name: String) extends Friend
class Man(override val name : String) extends Human(name)
class Woman(override val name: String) extends Human(name)
混入trait的数量可以是任意的。用关键字with可以混入更多的trait。如果类已经继承了类,就可以使用with混入trait。
如:
class Animal
class Dog(val name: String) extends Animal with Friend{
}
我们还可以在实例一级进行混入,这样的话就可以把特定的类的实例当做trait
如 :
class Cat(val name: String) extends Animal
val scat = new Cat("cat") with Friend
//这样scat就是Friend了