1. 协议的作用

协议是为方法和属性等定义一套规范, 协议是一个描述了方法或者属性的骨架, 并没有具体去实现

2. 协议的定义

protocol 协议名称 {

    协议内容

}

3. 协议的继承

protocol pWalking {

    func walk()

}

protocol pRunning : pWalking {

    func run()

}

4. 类中协议的实现

现在创建一个 cSport 类, 让它必须遵循 pWalking 和 pRunning 协议

protocol pWalking {

    func walk()

}

protocol pRunning : pWalking {

    func run()

}

class cSport : pRunning {

    var name = "Jonny"

    func walk() {

        print("\(name) is walking!")

    }

    func run() {

        print("\(name) is running!")

    }

}

var handsome = cSport()

handsome.walk()

handsome.run()

    /*结果 :

        Jonny is walking!

        Jonny is running!

    */

如果 cSport 类中, 并没有遵循 pWalking 和 pRunning 协议, 其中缺少相关方法和属性, 编译器会报错 :

protocol pWalking {

    func walk()

}

protocol pRunning : pWalking {

    func run()

}

class cSport : pRunning {

    var name = "Jonny"

    /*func walk() {

        print("\(name) is walking!")

    }*/

        //对walk()方法进行注释

    func run() {

        print("\(name) is running!")

    }

}

var handsome = cSport()

handsome.walk()

handsome.run()

    //结果 : 编译器报错