您的位置:首页 > 编程语言 > Go语言

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

2014-04-09 17:18 627 查看
在大多数面向对象的编程语言中多继承都是不支持的。因为在基于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
*/
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息