Scala Trait(特征) 相當于 Java 的接口,實際上它比接口還功能強大扒秸。與接口不同的是骚露,它還可以定義屬性和方法的實現。一般情況下Scala的類只能夠繼承單一父類障般,
但是如果是 Trait(特征) 的話就可以繼承多個
调鲸,從結果來看就是實現了多重繼承
一、Trait的定義
Trait(特征) 定義的方式與類類似挽荡,但它使用的關鍵字是trait
/**
* @author Gjing
**/
trait Person {
/**
* 說
* @param content 內容
*/
def say(content: String): Unit
/**
* 吃
* @param food 食物
*/
def eat(food: String): Unit = say("在吃" + food)
}
上面定義了兩個方法藐石,say()方法沒有定義實現,eat()方法定義了方法的默認實現定拟,子類只需實現say()方法即可贯钩,從這里可以看出,Scala中的Trait其實更像Java中的抽象類. 下面是一個完整的示例
/**
* @author Gjing
**/
obje
def main(args: Array[String]): Unit = {
val min = new XiaoMin
min.say("你好")
min.eat("蘋果")
}
}
/**
* @author Gjing
*/
class XiaoMin extends Person {
override def say(content: String): Unit = println(content)
}