在 Kotlin 中扩展数据类

数据类是保存应用程序数据的类。它就像我们在 Java 中用来保存数据的 POJO 类。

在 Java 中,对于数据类,我们需要创建getter和setter方法来访问该类的属性。在 Kotlin 中,当一个类被声明为数据类时,编译器会自动创建一些访问该类成员变量所需的支持方法。编译器将为构造函数参数创建getter和setter , hashCode(), equals(), toString(), copy()。

对于在 Kotlin 中被视为数据类的类,需要满足以下条件 -

  • 主构造函数至少需要一个参数。

  • 所有主要的构造函数参数都需要标记为val或var。

  • 数据类不能是抽象的、开放的、密封的或内部的。

我们不能扩展数据类,但为了实现相同的功能,我们可以声明一个超类并覆盖子类中的属性。

示例

在下面的示例中,我们将创建两个数据类“Student”和“Book”。我们还将创建一个抽象类“资源”。在“Book”中,我们将覆盖“Resource”类的属性。

data class Student(val name: String, val age: Int)

fun main(args: Array) {

   val stu = Student("Student1", 29)

   val stu2 = Student("Student2", 30)

   println("Student1 Name is: ${stu.name}")

   println("Student1 Age is: ${stu.age}")

   println("Student2 Name is: ${stu2.name}")

   println("Student2 Age is: ${stu2.age}")

   val b=Book(1L,"India","123222") //实现抽象类

   println(b.location)

}

//声明超类

abstract class Resource {

   abstract var id: Long

   abstract var location: String

}

//覆盖资源类的属性

data class Book (

   override var id: Long = 0,

   override var location: String = "",

   var isbn: String

) : Resource()

输出结果

它将生成以下输出 -

Student1 Name is: Student1

Student1 Age is: 29

Student2 Name is: Student2

Student2 Age is: 30

India

以上是 在 Kotlin 中扩展数据类 的全部内容, 来源链接: utcz.com/z/297069.html

回到顶部