Kotlin 抽象类,抽象类无法实例化,这意味着我们无法创建抽象类的对象。与其他类不同,抽象类总是打开的,因此我们不需要使用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 function
fun demo() {
println("Non-abstract function of abstract class")
}
//abstract function
abstract 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()
}
输出: