本节介绍 Kotlin 的类的声明以及构造函数
在前面的文章中简单的介绍过类的声明,我们来回顾下。
与 Java 类似,同样使用 class
关键字来声明一个类,后面紧跟着类名,如果该类有父类的话使用 :
分割,如果该类需要实现接口,则直接使用 ,
跟在后面即可,而不是用 implement
关键字。接口和父类没有先后顺序。
特别的,Kotlin 中如果没有显式的声明一个父类,那么它的父类为 Any,而不是 Object。
Kotlin 会对所有的类默认添加 public final
修饰符,如果不需要 final
来修饰的话,则需要使用 open
关键字修饰 Kotlin 的类, open
就表示这个类“不 final”。
在 Kotlin 中分为主构造函数和次级构造函数,其中主构造函数只能有一个,次构造函数可以有多个。
如果构造函数只有一个且没有参数,则可以直接省略不写,如上面的示例中 MainActivity 省略了无参构造函数,父类后面的括号表示调用父类无参数的构造函数。
如果构造函数需要参数,则可以在类名后添加参数,如果需要在构造函数中执行语句的话,则需要添加 init 代码块,将语句写在代码块中,像这种直接跟在类名后面的构造函数就称之为主构造函数。(init 代码块是可以写多个的)。
如果需要多个构造函数,则可以使用 constructor
关键字声明次级构造函数,特别地,如果声明了次级构造函数,主构造函数的无参隐藏的特性就会失效。例如示例中的类,就没有无参构造函数。
如果主构造函数和次级构造函数都存在时,次级构造函数要使用 this
关键字调用主构造函数:
通过示例我们就可以看出,init 代码块执行顺序受声明的顺序影响,且优先于次级构造函数。
以上就是本节内容,欢迎大家关注~