面向对象 - 构造方法与继承

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 继承父类

posted @ 2022-11-28 17:46  随易来了  阅读(18)  评论(0编辑  收藏  举报