1. 程式人生 > >Swift -繼承、屬性、重寫父類、懶載入、解構函式

Swift -繼承、屬性、重寫父類、懶載入、解構函式

1.	新建工程命名:zhoukaojineng,建立一個類Person,在類中定義方法eat,實現列印“吃飯”
2.	建立一個繼承自Person的Teacher類,在Teacher類中定義方法teach,實現列印“上課”,呼叫其父類的eat函式
3.	建立一個類Student並繼承與Person,定義屬性name,在Student中監聽屬性name的setter和getter
4.	在Student類中重寫父類的eat方法,列印“吃了早餐”
5.	在Student類中定義一個只讀屬性weight,體重“70kg”
6.	在Student類中懶載入一個屬性age用來年齡“22歲”,為Student類定一個建構函式,在函式內為所有屬性賦值
7.	在Student類中定義一個show方法,用來列印學生資訊,函式是公開訪問的 
8.	重寫Student類的解構函式,在函式內實現所有屬性的清空,並列印“呼叫了解構函式”

1.	新建工程命名:zhoukaojineng,建立一個類Person,在類中定義方法eat,實現列印“吃飯”
import Cocoa

class Person: NSObject {
    func eat(){
        print("吃飯")
    }
}
建立一個繼承自Person的Teacher類,在Teacher類中定義方法teach,實現列印“上課”,呼叫其父類的eat函式
import Cocoa

class Teacher: Person {
    func teach(){
        print("上課")
//        let fulei:Person = Person()
//        fulei.eat()
        super.eat()
        
        
    }
}
建立一個類Student並繼承與Person,定義屬性name,在Student中監聽屬性name的setter和getter
在Student類中重寫父類的eat方法,列印“吃了早餐”
在Student類中定義一個只讀屬性weight,體重“70kg”
在Student類中懶載入一個屬性age用來年齡“22歲”,為Student類定一個建構函式,在函式內為所有屬性賦值
在Student類中定義一個show方法,用來列印學生資訊,函式是公開訪問的 
重寫Student類的解構函式,在函式內實現所有屬性的清空,並列印“呼叫了解構函式”

import Cocoa

class Student: Person {
    //3.    建立一個類Student並繼承與Person,定義屬性name,在Student中監聽屬性name的setter和getter
    var name:String = "小明"{
        willSet(newValue){
            print("新名\(newValue)")
        }
        didSet{
            
            print("舊名\(oldValue)")
            
        }
        
    }
    
    //4.    在Student類中重寫父類的eat方法,列印“吃了早餐”
    override func eat() {
        print("吃了早餐")
    }
    //5.    在Student類中定義一個只讀屬性weight,體重“70kg”
    var weight:String{
            return "70kg"
    }
    //6.    在Student類中懶載入一個屬性age用來年齡“22歲”,為Student類定一個建構函式,在函式內為所有屬性賦值
    lazy var age:String = "22歲"
    init(name:String , age:String){
        super.init()
        self.name = name
        self.age  = age
    }
    
    //7.    在Student類中定義一個show方法,用來列印學生資訊,函式是公開訪問的
    public func show(){
        print("\(name) , \(age) , \(weight)")
    }
    
    //8.    重寫Student類的解構函式,在函式內實現所有屬性的清空,並列印“呼叫了解構函式”
    deinit {
        self.age = ""
        self.name = ""
        print("呼叫了解構函式")
    }
}