//1基类
class Father {
var pen = 0.0
func read() {
print("父类的新闻")
}
}
//2子类
class Sun_M: Father {
var sunPen = 0
override func read() {
print("子类的新闻")
}
var name:String{
return "SANG"
}
var money:Int{
return sunPen
}
}
//3继承子类的新派生类
class Friend: Sun_M {
override var name: String{
return super.name+"SONG"
}
}
//4重写属性观察器,
class Sales:Sun_M {
override var sunPen: Int{
didSet{
pen = Double(sunPen)+1
print("pen \(pen)")
}
}
}
//5防止重写
class finalClass{
final var applePen = 1
final func test(){
}
final class func test2(){
}
}
class finalSub: finalClass {
//无法重写基类 定义了 final 的属性和函数
}
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//1基类使用
var fat = Father()
fat.read()
//打印 :v父类的新闻
//2子类使用
var sun = Sun_M()
sun.read()
//打印 :子类的新闻
//3子类的派生类
var fri = Friend()
fri.pen = 10.1
fri.sunPen = 99
print(fri.name)
//打印 :SANGSONG
//4属性观察器
var sal = Sales()
sal.sunPen = 33
sal.sunPen = 33
sal.sunPen = 1
sal.sunPen = 3
//打印: pen 34.0 pen 34.0 pen 2.0 pen 4.0
//5防止重写
}
}