程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 《Swift2開發指南》第二版 學習筆記(Day 47)——final關鍵字

《Swift2開發指南》第二版 學習筆記(Day 47)——final關鍵字

編輯:關於C語言

《Swift2開發指南》第二版 學習筆記(Day 47)——final關鍵字


在類的定義中使用final關鍵字聲明類、屬性、方法和下標。final聲明的類不能被繼承,final聲明的屬性、方法和下標不能被重寫。

下面看一個示例:

final class Person { //聲明為final,說明它是不能被繼承的    

    var name: String    

    final var age: Int    //定義的age屬性    

    final func description() -> String {  //定義description實例方法

        return "\(name) 年齡是: \(age)"

    }    

    final class func printClass() ->() {  //定義printClass靜態方法

        print( "Person 打印...")

    }    

    init (name: String, age: Int) {

        self.name = name

        self.age  = age

    }

} 

class Student: Person {                            //編譯錯誤    

    var school: String    

    convenience init() {

        self.init(name: "Tony", age: 18, school: "清華大學")

    }    

    init (name: String, age: Int, school: String) {

        self.school = school

        super.init(name: name, age: age)

    }    

    override func description() -> String {         //編譯錯誤    //試圖重寫description實例方法

        print("父類打印 \(super.description())")

        return "\(name) 年齡是: \(age), 所在學校: \(school)。"

    }    

    override class func printClass() ->() {      //編譯錯誤  //試圖重寫printClass靜態方法

        print( "Student 打印...")

    }    

    override var age: Int {                        //編譯錯誤 //試圖重寫age屬性

    get {

        return super.age

    }

    set {

        super.age = newValue < 8 ? 8: newValue

    }

    }

}

 

 

定義Student類,並聲明為Person子類時,會報如下編譯錯誤:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved