类
Kotlin中使用关键字class声明类
class Person{/*...*/}
构造函数
Kotlin中的一个类有一个主构造函数,并可能有一个或者多个次构造函数。主构造函数在类头中声明,它跟在类名与可选的参数后。
主构造函数:
class Person constructor(firstName: String) { /*……*/ }
次构造函数:
class Person(val name: String) {
val children: MutableList<Person> = mutableListOf()
constructor(name: String, parent: Person) : this(name) {
parent.children.add(this)
}
}
如果主构造函数没有任何注解或者可见性修饰符,可以省略这个constructor关键字。
class Person(firstName: String) { /*……*/ }
抽象类
抽象类声明为abstract,抽象成员在本类中可以不用实现。并不需要用open标注抽象类或者函数。
abstract class Polygon {
abstract fun draw()
}
class Rectangle : Polygon() {
override fun draw() {
}
}
抽象成员可以覆盖一个非抽象的开发成员
open class Polygon {//非抽象的开发成员
open fun draw() {
}
}
abstract class WildShape : Polygon() {//抽象覆盖非抽象
abstract override fun draw()
}
伴生对象
类内部的对象声明可以用 companion 关键字标记:
class MyClass {
companion object Factory {
fun create(): MyClass = MyClass()
}
}