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
 

 

 

接口swift

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

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

var m = Man()
println("Name is \(m.getName())")
相關文章
相關標籤/搜索