swift自学笔记(五)(重写属性、final)

前端之家收集整理的这篇文章主要介绍了swift自学笔记(五)(重写属性、final)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


//************重写父类的存储属性***********//

@H_403_7@ class car {

@H_403_7@ var name:String = "b"

@H_403_7@ }


@H_403_7@ class trunk: car {

@H_403_7@ override var name:String {

@H_403_7@ get {

@H_403_7@ return super.name

@H_403_7@ }

@H_403_7@ set {

@H_403_7@ super.name = newValue

@H_403_7@ }

@H_403_7@ }

@H_403_7@ }

@H_403_7@ var tt = trunk()

tt.name = "tom"


//*************重写父类的计算属性*********//

@H_403_7@ class Ccircle {

@H_403_7@ var PI:Double {

@H_403_7@ return 3.14

@H_403_7@ }

@H_403_7@ }


@H_403_7@ class ccc: Ccircle {

@H_403_7@ override var PI:Double {

@H_403_7@ get {

@H_403_7@ return 55

@H_403_7@ }

@H_403_7@ set {

@H_403_7@ newValue

@H_403_7@ }

@H_403_7@ }

@H_403_7@ }


@H_403_7@ var cccc = ccc()

cccc.PI = 90


//******************总结*******************************//

//子类无论是重写父类的存储属性还是计算属性,都是拦截父类set get方法进行操作。区别是当子类重写了父类的计算属性的时候是无法再set方法中将newValue存储到super属性中的。类属性的重写和重写父类的计算属性一样,因为类属性只能是计算属性

// final的作用:被final修饰的属性方法、下标脚本都不能被子类重写

原文链接:https://www.f2er.com/swift/324760.html

猜你在找的Swift相关文章