Go语言使用组合的方式实现多继承的方法

本文实例讲述了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语言程序设计有所帮助。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。