zoukankan      html  css  js  c++  java
  • Go语言中接口组合的实现方法

    在Go语言中,可以在接口A中组合其它的一个或多个接口(如接口B、C),这种方式等价于在接口A中添加接口B、C中声明的方法。

    代码如下:
    //接口中可以组合其它接口,这种方式等效于在接口中添加其它接口的方法  
    type Reader interface {  
        read()  
    }  
    type Writer interface {  
        write()  
    }  
      
    //定义上述两个接口的实现类  
    type MyReadWrite struct{}  
      
    func (mrw *MyReadWrite) read() {  
        fmt.Println("MyReadWrite...read")  
    }  
      
    func (mrw *MyReadWrite) write() {  
        fmt.Println("MyReadWrite...write")  
    }  
      
    //定义一个接口,组合了上述两个接口  
    type ReadWriter interface {  
        Reader  
        Writer  
    }  
      
    //上述接口等价于:  
    type ReadWriterV2 interface {  
        read()  
        write()  
    }  
      
    //ReadWriter和ReadWriterV2两个接口是等效的,因此可以相互赋值  
    func interfaceTest0104() {  
        mrw := &MyReadWrite{}  
        //mrw对象实现了read()方法和write()方法,因此可以赋值给ReadWriter和ReadWriterV2  
        var rw1 ReadWriter = mrw  
        rw1.read()  
        rw1.write()  
      
        fmt.Println("------")  
        var rw2 ReadWriterV2 = mrw  
        rw2.read()  
        rw2.write()  
      
        //同时,ReadWriter和ReadWriterV2两个接口对象可以相互赋值  
        rw1 = rw2  
        rw2 = rw1  
    }
  • 相关阅读:
    inputstream和outputstream读写数据模板代码
    如何显示包的上一层包
    我的cnblogs设置代码
    myeclipse ctrl+shift+F失效
    数据包加密解密
    用VisualSVN Server创建版本库,以及TortoiseSVN的使用
    权限验证MVC
    Asp.net MVC23 使用Areas功能的常见错误
    MVC基础知识
    最全的Resharper快捷键汇总
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/6560653.html
Copyright © 2011-2022 走看看