【24】kotlin 內部類 匿名內部類

package com.yzdzy.kotlin.chapter4.innerclass

class Outter {
    val a: Int = 0

    //靜態內部類
    class Inner {

    }

    //非靜態內部類
    inner class Inner2 {
        fun hello() {
            println(a)
            //Outter 調用成員的a   相當於java得InnerClassJava.this
            println([email protected])
        }
    }
}

interface OnClickLisenter {
    fun onClick()
}

class View {
    var onClickLisenter: OnClickLisenter? = null
}

fun main(args: Array<String>) {
    var inner = Outter.Inner()
    val inner2 = Outter().Inner2()

    val view = View()
    //匿名內部類
    view.onClickLisenter = object : OnClickLisenter {
        override fun onClick() {
            TODO("Not yet implemented")
        }
    }



}

內部類

  • 定義在類內部的類

  • 與成員有相似的訪問控制

  • 默認是靜態內部類,非靜態用inner關鍵字

匿名內部類

  • 沒有定義名字的內部類

  • 類名編譯時申城,類似Outter$1.class

  • 可繼承父類。實現多個接口 與java注意區別  java 只能集成一個類或者實現一個接口

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章