面向对象 - 构造方法与继承
1、主构造方法
特点:
- 没有函数体
- 直接跟在类的后面
- 主构造方法用var或val生命的变量成为该类的变量
- 如果想在主构造方法后执行逻辑,调用init方法,类似java静代码块
class Person(var name: String, var age: Int) { init { print(name) } }
如上:name成为该类的成员变量,init可作初始化
2、次构造方法
用constructor定义
class Person(var name: String, var age: Int) { init { print(name) } constructor(name: String) : this(name,1) } fun main(){ Person("aa") }
(1)以上代码执行顺序:父类主构造方法 -> 父类Init -> 子类init -> 子类次构造方法体
(2)当主构造函数与次构造函数同时存在时,次构造函数必须调用主构造器
3、继承
class NapModePop(context: Context) : SmartScenePop1(context), View.OnClickListener
子类继承父类。父类有一个(),并传入参数。因为子类的构造函数必须调用父类的构造方法,在java中隐式调用
1、超类 Any, 所有类继承Any类
2、默认kotlin类是final,表示不能被继承。使用open关键字可继承。继承关键字由extends 替换为 ":" 符号
3、继承类的构造函数调用次序:父类init>子类init>子类次构造器方法体
4、接口定义和java一样,使用interface定义,使用“:”实现
继承参考: (23条消息) Kotlin基础语法 九、类的继承_飞过那时的城镇的博客-CSDN博客_kotlin 继承父类