Scala Trait(特征) 相當(dāng)于 Java 的接口,實際上它比接口還功能強大。與接口不同的是,它還可以定義屬性和方法的實現(xiàn)。一般情況下Scala的類只能夠繼承單一父類,
但是如果是 Trait(特征) 的話就可以繼承多個,從結(jié)果來看就是實現(xiàn)了多重繼承
一、Trait的定義
Trait(特征) 定義的方式與類類似,但它使用的關(guān)鍵字是trait
/**
* @author Gjing
**/
trait Person {
/**
* 說
* @param content 內(nèi)容
*/
def say(content: String): Unit
/**
* 吃
* @param food 食物
*/
def eat(food: String): Unit = say("在吃" + food)
}
上面定義了兩個方法,say()方法沒有定義實現(xiàn),eat()方法定義了方法的默認(rèn)實現(xiàn),子類只需實現(xiàn)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)
}