在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  
}

最新文章

  1. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
  2. python lambda
  3. Matlab中plot函数参数解析
  4. 理解Android的手势识别
  5. storm spout的速度抑制问题
  6. JavaScript基本概念(对象)
  7. Excel设置下拉选项的方法
  8. 一、Hbase的安装
  9. 为什么不能将客户端的连接请求跳转或转发到本机lo回环接口上?
  10. Connect Appium Server Fail.A new session could not be created
  11. android官方技术文档翻译——switch 语句转换
  12. 转-filebeat 源码分析
  13. 为什么PPIO要设计支付代理节点?
  14. Django form表单功能的引用(注册,复写form.clean方法 增加 验证密码功能)
  15. [转]SQL Collation冲突解决 临时表
  16. 未能从程序集“System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.Transactions.TransactionScopeAsyncFlowOption”
  17. javaweb项目运行时生成的Servers项目作用
  18. 四则运算截图and代码
  19. Python中使用LMDB
  20. Unity3D - 资源管理

热门文章

  1. C#将数据导入到Excel表格中
  2. [CSP-S模拟测试63]题解
  3. undefined null测试
  4. Kali 和 Centos、Windows三系统的安装事项!
  5. PHP基础知识总结(五) php面试题
  6. 嵌入式C语言4.3 C语言内存空间的使用-指针与运算符
  7. python作业/练习/实战:3、实现商品管理的一个程序
  8. SpringBoot扫描不到类,注入失败A component required a bean of type 'XXService' that could...
  9. JSON Web Token (JWT),服务端信息传输安全解决方案。
  10. ELK日志分析平台.1-搭建