返回

Kotlin 学习指南:抽象类和方法剖析

Android





在 Kotlin 中,抽象类和方法是面向对象的编程的基本概念,为我们提供了在不具体指定其行为或细节的情况下定义类和方法的途径。本指南将引导你踏上探索抽象类和方法的旅程,帮助你掌握它们在 Android 开发中的实际运用。

## 抽象类

抽象类用于定义不打算被直接实例化的类。它们充当模板,为派生类提供一个契约,而无需在抽象类中显式定义方法的具体行为。要将类标记为抽象,请使用 `abstract` 

```kotlin
abstract class MyAbstractClass {
  // 抽象方法
}

抽象类通常用于:

  • 定义公共接口以供派生类使用
  • 防止对不应实例化的类进行实例化
  • 允许在不知晓派生类具体细节的情况下引用基类

抽象方法

在抽象类中定义的方法也自动标记为抽象方法。抽象方法没有大括号,仅包含方法签名:

abstract fun myAbstractMethod()

抽象方法强制派生类为其提供具体的行为。派生类可以通过使用 override 来重写抽象方法:

class MyConcreteClass : MyAbstractClass() {
  override fun myAbstractMethod() {
    // 具体行为
  }
}

open 注解

open 关键字用于将类或方法标记为可被重写的。在 Kotlin 中,默认行为是使类和方法都具有最终性,这意味着它们不能被重写。要显式允许重写,请使用 open 关键字:

open class MyOpenClass {
  // 开放方法
}

open 注解使派生类可以重写基类中的方法。

扩展类

Kotlin 还允许扩展现有类,而无需继承或使用组合。扩展类可用于向现有类中引入新方法和属性,而无需访问其源 saben。要扩展类,请使用 class 关键字,后跟 MyExtendedClass 后缀:

class MyExtendedClass : MyBaseClass() {
  // 扩展方法
}

对象

Kotlin 中的对象是单例类,这意味着它们只会被实例化 1 次。要创建一个 kotlin 对象,请使用 object 关键字:

object MyObject {
  // 对象成员
}

何时使用抽象类和方法?

  • 当需要定义公共接口让派生类遵循时。
  • 当需要防止对不应实例化的类进行实例化时。
  • 当需要在不涉及派生类具体细节的情况下引用基类时。

何时使用 open 注解?

  • 当需要允许重写基类中的方法时。

何时使用扩展类?

  • 当需要向现有类中引入新方法和属性时。

何时使用 kotlin 对象?

  • 当需要创建一个只会被实例化 1 次的类时。