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了



posted @ 2011-11-18 22:43  lexloo  阅读(3963)  评论(0编辑  收藏  举报
ccc