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 只能集成一个类或者实现一个接口