Swift2.0(12)繼承與多態(tài)-創(chuàng)新互聯(lián)

  • 繼承關(guān)系

    創(chuàng)新互聯(lián)服務(wù)緊隨時(shí)代發(fā)展步伐,進(jìn)行技術(shù)革新和技術(shù)進(jìn)步,經(jīng)過(guò)十年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計(jì)師、專(zhuān)業(yè)的網(wǎng)站實(shí)施團(tuán)隊(duì)以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶(hù)要求對(duì)網(wǎng)站進(jìn)行成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、建設(shè)、維護(hù)、更新和改版,實(shí)現(xiàn)客戶(hù)網(wǎng)站對(duì)外宣傳展示的首要目的,并為客戶(hù)企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。

繼承:“is a”的關(guān)系

     繼承只能用于類(lèi)而不能用于結(jié)構(gòu)體和枚舉,繼承還可以用于協(xié)議

   語(yǔ)法:class 子類(lèi)名 : 父類(lèi)名 {}

     繼承中可以添加屬性和方法

   如:

   class Person {
       var name:String = ""

       var age:Int = 10

       func introduceSelf()->String {
           return "[Name:\(name) Age:\(age)] I am a Person"
       }
   }
   class Student:Person {
       var stuID:Int = 100
       func takeClass(className:String) {
           print("[Name:\(name) Age:\(age) StuID:\(stuID)] is taking Class \(className)]")
       }

   }

   var s = Student()
   s.name = "張三"
   s.age = 18
   s.stuID = 1001
   print(s.introduceSelf())

   s.takeClass("語(yǔ)文")

  • 重寫(xiě)

子類(lèi)重寫(xiě)父類(lèi)的方法:override func 方法名(參數(shù)列表)->返回值 {}

     override func introduceSelf() -> String {

        return "[Name:\(name) Age:\(age) StuID:\(stuID)] I am a Student"

     }

子類(lèi)重寫(xiě)父類(lèi)行為屬性:override var 屬性名:類(lèi)型 { get/set }

   class Person {
       var name:String = ""
       var age:Int = 10
       var introduceSelf:String {
           get {
               return "[Name:\(name) Age:\(age)] I am a Person"
           }
       }
   }
   class Student:Person {

       var stuID:Int = 100

       override var introduceSelf:String {
           get {
               return "[Name:\(name) Age:\(age) StuID:\(stuID)]"
           }
       }

   }

   var s = Student()
   s.name = "張三"
   s.age = 18
   s.stuID = 1001

   print(s.introduceSelf)

   重寫(xiě)行為屬性時(shí),如果父類(lèi)的行為屬性是只讀的,子類(lèi)可以重寫(xiě)成讀寫(xiě)的

父類(lèi)禁止子類(lèi)重寫(xiě):

   父類(lèi)在不想被子類(lèi)重寫(xiě)的行為屬性或者方法前,添加關(guān)鍵字 final 修飾

   定義類(lèi)前也可以使用final聲明,表示該類(lèi)不會(huì)被繼承

子類(lèi)中,如果想調(diào)用父類(lèi)被重寫(xiě)的方法,可以通過(guò)super關(guān)鍵字調(diào)用

   在子類(lèi)的對(duì)象方法中:super代表子類(lèi)對(duì)象的父類(lèi)部分

   在子類(lèi)的類(lèi)方法中:super代表父類(lèi)類(lèi)型

  • 多態(tài)

父類(lèi)類(lèi)型的引用只想子類(lèi)實(shí)例

通過(guò)父類(lèi)類(lèi)型引用調(diào)用子類(lèi)的方法,這個(gè)過(guò)程是“動(dòng)態(tài)綁定”的,這就是多態(tài)

Swift是完全多態(tài)的

   class Animal {
       func speak() {
           print("Animal speak.")
       }
   }
   class Dog: Animal {
       override func speak() {
           print("WangWang.")
       }
   }
   class Cat : Animal {
       override func speak() {
           print("MiaoMiao.")
       }

   }

   var p1:Animal;
   p1 = Dog()

   p1.speak()   //WangWang.

   p1 = Cat()

   p1.speak()   //MaioMiao.

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

分享題目:Swift2.0(12)繼承與多態(tài)-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://muchs.cn/article32/iphsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作小程序開(kāi)發(fā)、網(wǎng)站導(dǎo)航、電子商務(wù)、網(wǎng)站制作、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管