美文网首页
Swift:基础(三十)协议

Swift:基础(三十)协议

作者: 解码漫聊 | 来源:发表于2018-01-22 10:08 被阅读0次

    Swift 协议

    协议规定了用来实现某一特定功能所必需的方法和属性。

    任意能够满足协议要求的类型被称为遵循(conform)这个协议。

    类,结构体或枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能。

    语法

    协议的语法格式如下:

    protocol SomeProtocol {
        // 协议内容
    }
    

    要使类遵循某个协议,需要在类型名称后加上协议名称,中间以冒号:分隔,作为类型定义的一部分。遵循多个协议时,各协议之间用逗号,分隔。

    struct SomeStructure: FirstProtocol, AnotherProtocol {
        // 结构体内容
    }
    

    如果类在遵循协议的同时拥有父类,应该将父类名放在协议名之前,以逗号分隔。

    class SomeClass: SomeSuperClass, FirstProtocol, AnotherProtocol {
        // 类的内容
    }
    

    备注

    1.Swift中协议类似于别的语言里的接口,协议里只做方法的声明,包括方法名、返回值、参数等信息,而没有具体的方法实现。

    protocol Person {
        //读写属性
        var name:String{get set}
        
        //只读属性
        var age:Int{get}
        
        //类型方法
        static func method1()
        
        //实例方法
        func method2() -> Int
        
        //突变方法
        mutating func method3()
    }
    

    2.协议可以继承另一个协议

    protocol Animal{
        func move()
    }
    
    protocol Bird:Animal{
        func song()
    }
    
    class Chiken:Bird{
        func song(){
            print("母鸡咯咯")
        }
        
        func move(){
            print("母鸡走")
        }
    }
    

    3.如果某个类集继承了某个父类,又遵循了某个协议,那么冒号后面应该先写父类,再写协议

    class CC:继承的父类, 协议1, 协议2{
        
    }
    

    相关文章

      网友评论

          本文标题:Swift:基础(三十)协议

          本文链接:https://www.haomeiwen.com/subject/tdtlaxtx.html