Kotlin中級(11)- - - Kotlin類物件
用一個類繼承另一個類,在子類中增加成員屬性或方法,最後建立一個子類的物件
open class One(age: Int) { var age: Int =age } class Two: One(age = 10){ fun add(){ println() } } fun main(args: Array<String>) { var two = Two() two.add() }
通過繼承父類進行類擴充套件,宣告的子類可以反覆定義新的物件,但是有一個問題,就是如果我還想擴充套件類,就又要重新宣告一個新的子類繼承One,又或者是如果我僅需建立擴充套件類的一個物件,僅為了這麼一個物件就宣告一個類,太不值得了。解決辦法->物件表示式
物件表示式
object
open class One(age: Int){ var age: Int = age } fun main(agrs: Array<String>){ var two = object: One(20){ fun newAdd(){ print("我是新增的方法") } } print("${two.age}") two.newAdd() }
物件表示式完全可以實現繼承的效果
下面看下物件表示式 的作用
- 增加成員屬性和方法
- 覆蓋子類或介面的成員屬性和方法
例如:
interface Three{ fun interFunction() } open class One(age: Int){ open var age: Int = age open fun classFuction(){ print("我是類裡的方法") } } fun main(args: Array<String>) { var two = object : One(20),Three{ override fun interFunction() { println("在物件表示式中覆蓋了介面的方法") } override var age: Int = 21 override fun classFuction() { println("在物件表示式中覆蓋了父類的方法") } } println("覆蓋了父類的age屬性:${two.age}") two.interFunction() two.classFuction() }