Kotlin的Class

2025-01-14

parameter 和 properties的区别

class Dog(val name: String) {
	//do something
}

如果加了val,则可以在实例对象中调用;如果不加,则是parameter,不能调用

注意,如果想要在实例中更改properties,要用var

val daizy = Dog("Daisy")
println(daizy.name)

默认参数值

可以在定义参数时给默认值val age: Int = 0

data class

如果只在当前的文件中使用,则使用data class

data class CoffeeDetails(
    val sugarCount: Int,
    val name: String,
    val size: String,
    val creamAmount: Int
)

copy对象

使用.copy方法,同时可以修改属性

val blueRoseVase = Vase(color = "Blue", design = "Rose")
val redRoseVase = blueRoseVase.copy(color = "Red")

data class Vase(val color: String, val design: String)

继承class

父class需要加上open关键字

open class BaseClass{}

如果需要在后面override函数,也需要加上open关键字

open fun thingsToOverride(){}

示例

override fun role(){
	super.role() //继承所有
	//其他代码
}

继承class需要加上括号

class Secondary: BaseClass(){}

interface 接口

一样是继承的概念,主要解决多重继承的问题。

但是父亲不需要open关键字

定义

interface Archer{
	fun archer(){
		println("Archer skills from Sir Secondary")
	}
}

使用

class Offsprint: Secondary(), Archer{
}

参考资料

udemy-eu-function-and-class