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修饰的属性方法、下标脚本都不能被子类重写

猜你在找的Swift相关文章