文章目录
- 重写(Override)
- 重载(Overload)
重写(Override)
重写通常是指子类覆盖父类的属性或方法,通常会标记为override
:
open class Base {open val name = "Base"open fun invoke() = println("父类")
}class Override : Base() {override val name = "Override"override fun invoke() = print("子类")
}fun main() {val base = Base()val override = Override()println(base.name)println(override.name)base.invoke()override.invoke()
}
Base
Override
父类
子类
重载(Overload)
重载是指同一域中的同名函数(或方法)具有不同的参数类型或数量。
fun getName() = "Kotlin"fun getName(versionCode: Int) = "Kotlin $versionCode"fun getName(version: String) = "Kotlin $version"fun main() {println(getName())println(getName(2))print(getName("2.0.0"))
}
Kotlin
Kotlin 2
Kotlin 2.0.0
Note:参数名称不同但类型相同的函数不是重载:
fun getName(v: String) = "Kotlin $v"fun getName(version: String) = "Kotlin $version"