简述:
- kotlin 中接口的简单使用
- kotlin 中 类和属性的继承
- kotlin 中类的重载函数
- kotlin 中修饰符的介绍
- kotlin 中嵌套类 内部类的讲解
- kotlin 的主构造函数和次构造函数
1.接口
相比于 java 的接口,kotlin 还是有点不同的
1.Kotlin 的接口声明 默认都是 final 和 public 的 2.Kotlin 中的接口 和 java 1.8 接口相似,可以包含 抽象方法的定义 和 非抽象方法的实现
// 接口
interface Clicker{
fun click()
}
// 实现类
class MeButton : Clicker{
override fun click() {
println("not implemented")
}
}
// 调用
fun main(args: Array<String>) {
var button:MeButton = MeButton()
button.click()
}
上述代码,我们看到 kotlin 中 使用 “:” 代替了 java 中的 extends 和 implements , 和 java 相同的,kotlin 也是单继承,但是可以实现多个接口。
和java 中的 @override 相同,override 用来注释 继承父类的方法,或者 接口的方法或属性,不同的是 kotlin 中的 override 是强制添加上的,这样可以避免先写实现方法 在添加抽象方法 造成的重写。 kotlin 接口中可以有默认实现的方法,但是java 中则需要在方法中表明 default 关键字,而kotlin中是不用添加 关键字的。
interface Clicker{
fun click()
fun staticClick(){
println("默认实现")
}
}
如果你 实现了这个接口,你也可以继承该方法,对他进行修改,当然你也可以不实现该方法。
1.如果 你分别继承两个 接口,两个接口有相同的默认实现函数,如果不显式的指明调用哪一个,运行的时候会报错。 2.解决办法就是 实现两个接口中相同名称的函数,在函数中指明引用, 2.1 super< AInterface >.click(); super< BInterface >.click(); 而在java中的表达方式则是 AInterface .super.click(); 表现方式不太一样
2. 继承
2.1 继承函数
java 中的父类默认都是 可以继承的,所以我们在写 BaseActivit