let per:Person = Person()
per.eat()
let te:Teacher = Teacher()
te.teach()
var stu:Student? = Student(age: "15", name: "小明" )
stu!.eat()
stu!.show()
stu!.name = ""
stu = nil
class Student: Person {
? ? //創(chuàng)建一個(gè)類Student并繼承與Person畏浆,定義屬性name,在Student中監(jiān)聽屬性name的setter和getter
? ? var name:String = "打我" {
? ? ? ? willSet(oldName){
? ? ? ? ? ? print("現(xiàn)在的值\(oldName)")
? ? ? ? }
? ? ? ? didSet{
? ? ? ? ? ? print("原來的值\(oldValue)")
? ? ? ? }
? ? }
//
//? ? 在Student類中重寫父類的eat方法,打印“吃了早餐”
? ? override func eat() {
? ? ? ? print("吃了早餐")
? ? }
//? ? 在Student類中定義一個(gè)只讀屬性weight,體重“70kg”
? ? var weight:String{
? ? ? ? get{
? ? ? ? ? ? return "70kg"
? ? ? ? }
? ? ? ? set{
? ? ? ? }
? ? }
//? ? 在Student類中y一個(gè)屬性age用來年齡“22歲”,為Student類定一個(gè)構(gòu)造函數(shù),在函數(shù)內(nèi)為所有屬性賦值
? ? lazy var age:String = "22歲"
? ? init(age:String,name:String) {
? ? ? ? super.init()
? ? ? ? self.name = name
? ? ? ? self.age = age
? ? }
//? ? 在Student類中定義一個(gè)show方法,用來打印學(xué)生信息,函數(shù)是公開訪問的
? ? func show() {
? ? ? ? print("學(xué)生的信息\(age),\(name),\(weight)")
? ? }
//? ? 重寫Student類的析構(gòu)函數(shù),在函數(shù)內(nèi)實(shí)現(xiàn)所有屬性的清空,并打印“調(diào)用了析構(gòu)函數(shù)”
? ? deinit {
? ? ? ? print("調(diào)用了析構(gòu)函數(shù)")
? ? }
}