原文: https://beginnersbook.com/2019/03/kotlin-abstract-class/
抽象类无法实例化,这意味着我们无法创建抽象类的对象。与其他类不同,抽象类总是打开的,因此我们不需要使用open关键字。
注意事项:
- 我们无法创建抽象类的对象。
- 抽象类的属性和成员函数默认为非抽象。如果要在子类中覆盖这些,则需要为它们使用
open关键字。 - 如果成员函数是抽象的,那么它必须在子类中实现。抽象成员函数没有仅主体方法签名,实现在子类中完成。
抽象类示例
在下面的例子中我们有一个抽象类Student,我们不能创建这个类的对象。但是我们可以继承这个类,就像我们在下面的例子中所做的那样。类College继承抽象类Student。
函数func()是一个抽象函数,这意味着它没有正文和唯一的方法签名,但由于它是一个抽象函数,它必须在子类中覆盖。
abstract class Student(name: String, age: Int) {init {println("Student name is: $name")println("Student age is: $age")}//non-abstract functionfun demo() {println("Non-abstract function of abstract class")}//abstract functionabstract fun func(message: String)}class College(name: String, age: Int): Student(name, age) {override fun func(message: String) {println(message)}}fun main(args: Array<String>) {val obj = College("Chaitanya", 31)obj.func("I'm a Blogger")obj.demo()}
输出:

