scala中的匿名子類實現

loser.wang發表於2019-04-13
 引入:當我們對一個實現了抽象類的子類我們只需要呼叫一次的時候我們可以直接使用匿名類

一.我們得明白如何宣告一個抽象類,抽象方法,抽象屬性

1.使用abstract來宣告一個抽象類 
2.不對屬性進行初始化賦值,就是申明一個抽象屬性 
3.不寫方法體就是在宣告一個抽象方法

二.我們得明白如何定義一個匿名子類

1.見下面程式碼 
2.值得注意的是 override可寫可不寫,以及抽象方法如果沒有宣告具體返回值,那麼子類實現的返回值型別自定

 三.程式碼實現

package edu.lulu.oop.chapter6
// 實現scala中的匿名子類
// 引入:當我們對一個實現了抽象類的子類我們只需要呼叫一次的時候我們可以直接使用匿名類
// 一.我們得明白如何宣告一個抽象類,抽象方法,抽象屬性
      //1.使用abstract來宣告一個抽象類
      //2.不對屬性進行初始化賦值,就是申明一個抽象屬性
      //3.不寫方法體就是在宣告一個抽象方法
// 二.我們得明白如何定義一個匿名子類
      // 1.見下面程式碼
      // 2.值得注意的是 override可寫可不寫,以及抽象方法如果沒有宣告具體返回值,那麼子類實現的返回值型別自定義
object Test08 {

  def main(args: Array[String]): Unit = {

    var a = new Animal {

      override def cry(): String = {
        println("嗚嗚嗚,,,,,,")
        "LALAALA"
      }

      override var name: String = "WANGLULU"

    }

    a.cry()
  }


}


// 定義一個抽象類
abstract class Animal{
  var name:String
  def cry()
}

相關文章