- Kotlin 教程
- Kotlin - 首页
- Kotlin - 概述
- Kotlin - 环境设置
- Kotlin - 架构
- Kotlin - 基本语法
- Kotlin - 注释
- Kotlin - 关键字
- Kotlin - 变量
- Kotlin - 数据类型
- Kotlin - 运算符
- Kotlin - 布尔值
- Kotlin - 字符串
- Kotlin - 数组
- Kotlin - 范围
- Kotlin - 函数
- Kotlin 控制流
- Kotlin - 控制流
- Kotlin - if...Else 表达式
- Kotlin - When 表达式
- Kotlin - For 循环
- Kotlin - While 循环
- Kotlin - Break 和 Continue
- Kotlin 集合
- Kotlin - 集合
- Kotlin - 列表
- Kotlin - 集合
- Kotlin - 映射
- Kotlin 对象和类
- Kotlin - 类和对象
- Kotlin - 构造函数
- Kotlin - 继承
- Kotlin - 抽象类
- Kotlin - 接口
- Kotlin - 可见性控制
- Kotlin - 扩展
- Kotlin - 数据类
- Kotlin - 密封类
- Kotlin - 泛型
- Kotlin - 委托
- Kotlin - 解构声明
- Kotlin - 异常处理
- Kotlin 有用资源
- Kotlin - 快速指南
- Kotlin - 有用资源
- Kotlin - 讨论
Kotlin - 抽象类
Kotlin 抽象类类似于 Java 抽象类,不能被实例化。这意味着我们不能创建抽象类的对象。但是,我们可以从 Kotlin 抽象类继承子类。
Kotlin 抽象类使用abstract关键字声明在类名前面。抽象类的属性和方法是非抽象的,除非我们明确使用abstract关键字使其成为抽象的。如果我们想在子类中覆盖这些成员,那么我们只需要在子类中在其前面使用override关键字。
abstract class Person {
var age: Int = 40
abstract fun setAge() // Abstract Method
fun getAge() { // Non-Abstract Method
return age
}
}
抽象类始终是开放的。您不需要显式使用open关键字从它们继承子类。
示例
以下是一个简单的示例,展示了 Kotlin 抽象类及其通过子类的实现
abstract class Person(_name: String) {
var name: String
abstract var age: Int
// Initializer Block
init {
this.name = _name
}
abstract fun setPersonAge(_age:Int)
abstract fun getPersonAge():Int
fun getPersonName(){
println("Name = $name")
}
}
class Employee(_name: String): Person(_name) {
override var age: Int = 0
override fun setPersonAge(_age: Int) {
age = _age
}
override fun getPersonAge():Int {
return age
}
}
fun main(args: Array<String>) {
val employee = Employee("Zara")
var age : Int
employee.setPersonAge(20)
age = employee.getPersonAge()
employee.getPersonName()
println("Age = $age")
}
运行以上 Kotlin 程序时,将生成以下输出
Name = Zara Age = 20
这里,类Employee是从抽象类Person派生的。我们在子类Employee中实现了两个抽象方法和一个抽象属性。这里值得注意的是,所有抽象成员都已在子类中使用override进行了覆盖,如果子类继承抽象类,则这是强制性的。
总而言之,在声明中包含abstract关键字的 Kotlin 类称为抽象类。
抽象类可以包含或不包含抽象方法,即没有主体的方法(public void get();)
但是,如果一个类至少有一个抽象方法,那么该类必须声明为抽象类。
如果一个类被声明为抽象类,则它不能被实例化。
要使用抽象类,您必须从另一个类继承它,并在其中提供对抽象方法的实现。
如果继承抽象类,则必须在其中提供对所有抽象方法的实现。
测验时间 (面试 & 考试准备)
答案:D
解释
所有给定的陈述关于 Kotlin 抽象类都是正确的。
答案:B
解释
我们使用override关键字来实现抽象类的抽象成员
广告