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 只能集成一個類或者實現一個接口