Swift物件導向詳解,swift物件導向

來源:互聯網
上載者:User

Swift物件導向詳解,swift物件導向

1,首先來看看如何在Swift中定義一個類和類裡面的屬性、建構函式、方法及類方法

import Foundationclass Hello{    //成員屬性    var _name:NSString?="jikexueyuan"    //建構函式    init(){          }    //重載建構函式    init(name:NSString){        _name = name    }    //方法    func sayHello(){        println("Hello \(_name)")    }    //類方法    class func sayHi(){        println("Hello Swift")    }}var hello = Hello(name: "chen")hello.sayHello()Hello.sayHi()

 

2,在Swift中繼承是跟C#一樣使用冒號的形式來表示。一旦某個類繼承了它的父類,就同時有了父類的屬性和方法。在子類中可以重寫父類的方法也可以調用父類的方法。

class Hi:Hello {    //重寫父類方法    override func sayHello() {        super.sayHello()//調用父類方法        println("Hi \(_name)")    }}var hi = Hi()hi.sayHello()

 

3,在程式編寫的過程中有的時候我們會使用到第三方類庫或者使用系統的類庫的時候,發現這些類庫中某些類需要擴充則可以使用extension關鍵詞來實現。若子類繼承帶有extension擴充的父類,相應的子類也應該會有擴充的方法。

//類的動態擴充extension Hi{    func sayHaha(){        println("Haha")    }}hi.sayHaha()

 

4,在Swift中介面使用protocol關鍵字來定義

protocol Person{    func getName()->NSString}class Man: Person {    func getName() -> NSString {        return "jikexueyuan"    }}var man = Man()var hiMan = Hi(name: man.getName())hiMan.sayHello()

 

5,由於多態的繼承特性,使得編碼中有了子類與父類的轉型,即向上轉型和向下轉型。有向上轉型是把一個子類的執行個體直接賦給一個父類的引用變數、不用任何的類型轉換。引用變數只能在編譯時間才能轉換為實際的類型,這種強制轉換為向下轉型。

//向上轉型let obj : NSObject = "Hello"println(obj)//向下轉型let objStr : NSString = obj as! NSStringprintln(objStr)

 

6,在Swift中命名空間使用類的嵌套的方法去實現,但是當命名空間嵌套很複雜且命名空間裡的類會非常多的時候會顯得很臃腫。這個時候可以在一個Swift檔案中定義命名空間的嵌套,在另外一個Swift檔案中使用extension關鍵字來擴充命名空間,最後在使用到的檔案中直接調用就可以了。

//---Space.swiftclass com{    class jikexueyuan{        }}//---Hello.swiftextension com.jikexueyuan{    class Hello {        func sayHello(){            println("Hello")        }    }}//---Hi.swiftextension com.jikexueyuan{    class Hi  {        func sayHi(){            println("Hi")        }    }}//---Main.swiftvar spaceHello = com.jikexueyuan.Hello()spaceHello.sayHello()var spaceHi = com.jikexueyuan.Hi()spaceHi.sayHi()



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.