1. 程式人生 > >swift自學筆記(五)(重寫屬性、final)

swift自學筆記(五)(重寫屬性、final)

//************重寫父類的儲存屬性***********//

class car {

    var name:String = "b"

}

class trunk: car {

    override var name:String {

        get {

            return super.name

        }

        set {

            super.name = newValue

        }

    }

}

var tt = trunk()

tt.name = "tom"

//*************

重寫父類的計算屬性*********//

class Ccircle {

    var PI:Double {

        return 3.14

    }

}

class ccc: Ccircle {

    override var PI:Double {

        get {

           return 55

        }

        set {

            newValue

        }

    }

}

var cccc = ccc()

cccc.PI = 90

//******************總結

*******************************//

//子類無論是重寫父類的儲存屬性還是計算屬性,都是攔截父類的set get方法進行操作。區別是當子類重寫了父類的計算屬性的時候是無法再set方法中將newValue儲存到super的屬性中的。類屬性的重寫和重寫父類的計算屬性一樣,因為類屬性只能是計算屬性

// final的作用:被final修飾的屬性、方法、下標指令碼都不能被子類重寫