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 可以多继承吗的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

这可能是最容易理解的 go mutex 源码剖析

a simple txt file processing tool by golang

详解golang中方法的receiver为指针和不为指针的区别

golang学习笔记--unsafe.pointer和uintptr

sql导入工具自动化

golang 泛型

golang基础数据类型-整型

使用gin封装一个web脚手架(六):实现session(中)

windows下如何玩转火热的go-zero

golang influxdb 基础入门

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




打赏

取消

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

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

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

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

评论

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