swift類、繼承、接口




import Foundation

class Hello{
    
    var _name:String?="swift global"
    
    init(name:String){                    //定義類中有參數的構造方法
        _name=name;
        println("Hello , \(name)");
    }
    
    init(){                                //定義類中無參數的構造方法
        println("this is init method");
    }
    
    func sayHello(){                       //定義成員方法
        println("hello \(_name)")
    }
    
    class func meClass(){                 //定義類方法
        println("this is class method");
    }
    
}


class Hi:Hello{
    override func sayHello() {          //繼承Hello類,並重載 其成員方法
        super.sayHello()                //調用父類的方法
        println("hloo override \(_name)");
    }
}

class HiChild:Hi{}                      //繼承Hi類

extension Hi{                           //動態擴展 Hi 類,增加一個成員方法, 繼承了Hi 類的子類也可以調用這個方法
    func sayHaha(){
        println("HHHaaa");
    }
}

var h1 = Hello()                        //實例Hello類,調用無參的init方法 ,輸出this is init method

var h2 = Hello(name:"Hello init")     //調用有參的init方法,輸出:Hello , Hello init


var hi = Hi()       //實例化子類,會調用父類的無參構造方法,輸出this is init method
hi.sayHello() //調用類的方法,輸出hello Optional("swift global") 和 hloo override Optional("swift global")

var h3
= HiChild() //實例化,調用父類的父類的構造方法,輸出this is init method

h3.sayHaha() //父類擴展了一個方法,則其子類可以調用這個方法,輸出 HHHaaa
h3.sayHello() //調用父類的方法,輸出
hello Optional("swift global") 和 hloo override Optional("swift global")

Hello.meClass() //調用類方法,輸出
this is class method
 
        

 

 

接口

protocol People{           //protocal 定義一個接口
    func getName()->String  //接口中申明一個方法,該方法返回一個字符串 
}

class Man:People {          //實現該接口
    func getName() -> String {   //實現接口的類 必須實現接口中所有的方法
        return "zhangsan"
    }
}

var m = Man()
println("Name is \(m.getName())")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM