在大多数面向对象的编程语言中多继承都是不支持的。因为在基于class的体系中,多继承极大地增加了编译器的复杂性。

Go语言使用组合的方式实现继承,因此也可以很简单的实现多继承。 (推荐学习:go)

//使用组合的方式实现多继承type Phone struct{}func (p *Phone) Call() string {return "Ring Ring"}type Camera struct{}func (c *Camera) TakeAPicture() string {return "Click"}//多继承type CameraPhone struct {CameraPhone}func structTest0803() {cp := new(CameraPhone)fmt.Println("Our new CameraPhone exhibits multiple behaviors ...")fmt.Println("It exhibits behavior of a Camera: ", cp.TakeAPicture())fmt.Println("It works like a Phone too: ", cp.Call())/*Output:Our new CameraPhone exhibits multiple behaviors ...It exhibits behavior of a Camera:  ClickIt works like a Phone too:  Ring Ring*/}

更多相关文章

  1. go引入外部依赖的三种方式介绍
  2. go语言通过命令方式生成可执行文件
  3. 关于Golang切片的三种简单使用方式及区别
  4. java解析XML几种方式小结
  5. android pull 解析xml方式
  6. XML(2)通过XmlDocument与XDocument方式写入XML
  7. 四种XML解析方式详解

随机推荐

  1. 【Android】编写Drawable XML绘制底部带
  2. Android之activity属性汇总
  3. Android(安卓)ToolBar
  4. Android术语小全,推荐一下(改日在翻译).
  5. Android 安全机制
  6. Execution failed for task ':app:transf
  7. Android(安卓)SystemService类注释
  8. Android源码解析
  9. Android笔记 - 常见错误解决方法 | Andro
  10. Android,UI主线程与子线程