Scala語言入門七(trait)

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)
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容