Kotlin的基础知识--类与对象

142 阅读1分钟

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()
    }
}