golang 可以多继承吗


本文摘自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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...