本文实例讲述了Go语言使用组合的方式实现多继承的方法。分享给大家供大家参考。具体实现方法如下:
在大多数面向对象的编程语言中多继承都是不支持的。因为在基于class的体系中,多继承极大地增加了编译器的复杂性。
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 {
Camera
Phone
}
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: Click
It works like a Phone too: Ring Ring
*/
}
希望本文所述对大家的Go语言程序设计有所帮助。
您可能感兴趣的文章:- Golang正整数指定规则排序算法问题分析
- Golang最大递减数算法问题分析
- Go语言展现快速排序算法全过程的思路及代码示例
- 深入解析快速排序算法的原理及其Go语言版实现
- GO语言利用K近邻算法实现小说鉴黄
- Go语言实现汉诺塔算法
- Go语言通过Luhn算法验证信用卡卡号是否有效的方法
- go语言睡眠排序算法实例分析
- Go语言实现AzDG可逆加密算法实例
- Go语言实现的树形结构数据比较算法实例
- Go语言算法之寻找数组第二大元素的方法
- Golang排列组合算法问题之全排列实现方法