本文摘自php中文网,作者(*-*)浩,侵删。

在大多数面向对象的编程语言中多继承都是不支持的。因为在基于class的体系中,多继承极大地增加了编译器的复杂性。
Go语言使用组合的方式实现继承,因此也可以很简单的实现多继承。 (推荐学习:go)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | //使用组合的方式实现多继承
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
*/
}
|
以上就是golang 可以多继承吗的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
golang 可以开发 web 吗?
golang 架构设计原则 迪米特法则
golang实现选择排序
如何利用go-zero在go中快速实现jwt认证
手撸 ssh key管理器
golang语言社区--unity3d学习 第1期 如何学习unity3d
手把手教你vscode配置golang开发环境的步骤
visdom: rust版使用类jquery api的html解析操作库
go中x/sync/semaphore解读
手撸golang 行为型设计模式 命令模式
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » golang 可以多继承吗