Scala語言入門七(trait)

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)
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章