swift协议_010-swift协议protocol

Posted 爱你久久

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift协议_010-swift协议protocol相关的知识,希望对你有一定的参考价值。

//: Playground - noun: a place where people can play

import UIKit

//-----协议-------//

//协议:声明一组属性和方法,由协议的签订者来实现协议方法。

//1.协议的声明
protocol WXHLProtocol {
    
    //声明一组方法
    func doHomework()
    
    func dontLate()
    
    //3.Swift的协议中可以声明属性
    var money : Int {set get}
    var classNumber : Int {get}
    
    
    
}

//2.协议的签订 类名:协议名
class Person : WXHLProtocol {
    
    var name : String
    
    init(name : String) {
        self.name = name
    }
    
    //协议的签订者中必须实现协议方法
    func doHomework() {
        print("\(name)在写作业")
    }
    
    func dontLate() {
        print("\(name)不要迟到")
    }
    
    
    //实现协议中声明的属性
    var money : Int {
        set {
            self.money = newValue

        }

        get {
            return self.money

        }
    }
    
    var classNumber : Int {
        
        return 1000
    }
    
    
}

let p = Person(name: "小宝")
p.doHomework()
p.dontLate()

//4.协议的继承 子协议 : 父协议
protocol EngineerProtocol : WXHLProtocol {
    
    var job : String {get set}
    var header : String {get}
    
    
}

class SwiftEngineer : Person, EngineerProtocol {
    
    //协议中声明的属性可以是存储属性,也可以计算属性
    var job : String = "Swift Engineer"
    
    var header : String = "TeamLeader"
    
}

 

以上是关于swift协议_010-swift协议protocol的主要内容,如果未能解决你的问题,请参考以下文章

是否有可能有一个强制静态方法而不是类方法的 Swift 协议,反之亦然?

Google 协议缓冲区 - protoc-c 和 protoc 之间的二进制兼容性

快速协议转换失败,错误“google.type.LatLng”未定义

Swift标准库中的协议_012_swift协议

protoc生成gRPC代码和HTTP网关代码

protoc生成gRPC代码和HTTP网关代码