Trait

作者: felix_feng | 来源:发表于2016-08-08 10:26 被阅读17次

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了

相关文章

网友评论

      本文标题:Trait

      本文链接:https://www.haomeiwen.com/subject/ihfrsttx.html