import Cocoa
class Student { var age: Int = 0 var chineseScore: Double = 0.0 var englishScore: Double = 0.0 var averageScore: Double { get{ return (chineseScore + englishScore) / 2 } set{ print("set\(newValue)") } } var averageScore2: Double { return (chineseScore + englishScore) / 2 } static var couseCount = 3 lazy var courses: [String] = { ()->[String] in print("懒加载属性") return ["java", "html", "swift"] }() var name: String = "tt" { willSet{ print("父类 willSet 被调用, newValue\(newValue)") } didSet{ print("父类 didSet 被调用, oldValue\(oldValue)") } } }
class SeniorStudent : Student{ private var _chineseScore: Double = 0.0 override var chineseScore: Double{ get { return _chineseScore } set { _chineseScore = newValue } } override var averageScore: Double{ get { return 90.5 } set{ } } override var name:String { willSet{ print("子类 willSet 被调用, newValue\(newValue)") } didSet{ print("子类 didSet 被调用,oldValue\(oldValue)") } } override var courses: [String] { get { return ["swift", "OC"] } set { } } override var averageScore2: Double { return 96.1 }
}
let student = SeniorStudent() student.chineseScore = 91
print(student.chineseScore)
|
Author: David硕
Permalink: http://davidxiaoshuo.github.io/iOS/swift_override_property/
License: Copyright (c) 2019 CC-BY-NC-4.0 LICENSE
Slogan: Write readable code!