scala特质
scala Trait(特质)相当于java的接口,但是他的功能远比接口强大。
scala中的Trait(特质)的方法是可以实现的,这点与java不同。
在sacla中没有加入接口的关键字都是用extend
继承,多继承时使用with
关键字
案例演示:
//创建说hello的接口
trait SayHello{
def sayHello(name:String)
}
//创建听音乐接口
trait ListenMusic{
def playMusic(musicName:String)={
println(musicName+"正在播 放中。。。。")
}
}
//接口实现:
class Person(var name:String) extends SayHello with ListenMusic {
override def sayHello(name: String): Unit = {
println("hello"+name)
}
def this(){
this("")
}
override def playMusic(musicName: String): Unit = {
println("高级播放器"+musicName+"歌曲。。。。")
}
}
object Person{
def main(args: Array[String]): Unit = {
var superMan:SuperMan with SayHello with ListenMusic= new SuperMan with SayHello with ListenMusic {
override def sayHello(name: String): Unit = {
println("通过动态混入重写sayHello方法 hey"+name)
}
}
superMan.playMusic("黄钦杰傻狗")
superMan.sayHello("kb07")
}
}
Scala特质可以在创建对象是进行混入特质,如果方法没有实现还可以重写进行实现。