kotlin内部类 匿名内部类

package kotlinall.chapter4

open class Outter{
    val a:Int = 0
    class Inner{//内部类默认 访问属性public 而且静态内部类
        fun hello(){
           // println(a) 静态内部类无法访问 非静态外部类的成员变量
        }
    }
    inner class NoStaticInner{//非静态内部类 使用inner
        val a:Int = 0
        fun hello(){
            println(a)
            println([email protected])//这种写法 是全称写法
        }
    }
}
interface OnClickListener{
    fun onClick()
}
class View{
     var clickListener:OnClickListener? = null

}
/*
* 内部实例必须依赖外部类 使用非静态内部类
*
* */
fun main(args: Array) {
    val inner = Outter.Inner()//静态内部类
    val inner1 = Outter().NoStaticInner()//非静态内部类

    val view = View()

    //匿名内部类的写法 而且还可以继承一个 实现多个接口
    view.clickListener = object :Outter(),OnClickListener{
        override fun onClick() {
        }

    }
}```

你可能感兴趣的:(kotlin)