POP面向协议编程

2019-08-29  本文已影响0人  Code_人生

一、继承

class LGAnimal: NSObject {
    var leg:Int {return 4}
    func run(){
        print("\(leg)只脚奔跑")
    }
    func eat(){
        print("肉")
    }
}

class LGMonkey: LGAnimal {
    override var leg: Int {return 2}
    override func eat() {
        print("🍑")
    }
}

二、协议

protocol LGProtocl {
    /// 协议属性
    var name: String {get}
    /// 协议方法
    func sayHello()
}

extension LGProtocl {
    var name: String {
        return "hello"
    }
    func sayHello() {
        print("extension hello")
    }
}

/// LGTeacher结构体来实现协议
struct LGTeacher: LGProtocl{
    var name: String
//    func sayHello() {
//        print("你好")
//    }
}

struct LGStudent: LGProtocl {
    var name: String
//    func sayHello() {
//        print("别烦我,我要学习POP")
//    }
}

class Person: LGProtocl {
    var name: String = ""
    
    func sayHello() {
        print("你好")
    }
}

extension UIViewController: LGProtocl {
    var name: String {
        return "dyz"
    }
}
上一篇 下一篇

猜你喜欢

热点阅读