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 语言的标准库 log 包怎么使用?

手撸golang go与微服务 grpc

go 内存模型 并发可见性

golang如何判断channel已经close

聊聊gorm的locking

tools easily execute sql against structured text like csv or tsv

golang web开发乱码的原因与解决方法

毛剑:bilibili 的 go 服务实践(上篇)

go-interface

分布式事务最经典的七种解决方案

更多相关阅读请进入《golang》频道 >>




打赏

取消

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

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

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

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

评论

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