這篇文章主要介紹了Go語(yǔ)言使用組合的方式實(shí)現(xiàn)多繼承的方法,實(shí)例分析了多繼承的原理與使用組合方式來(lái)實(shí)現(xiàn)多繼承的技巧,需要的朋友可以參考下
本文實(shí)例講述了Go語(yǔ)言使用組合的方式實(shí)現(xiàn)多繼承的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
在大多數(shù)面向?qū)ο蟮木幊陶Z(yǔ)言中多繼承都是不支持的。因?yàn)樵诨赾lass的體系中,多繼承極大地增加了編譯器的復(fù)雜性。
Go語(yǔ)言使用組合的方式實(shí)現(xiàn)繼承,因此也可以很簡(jiǎn)單的實(shí)現(xiàn)多繼承。
復(fù)制代碼代碼如下:
//使用組合的方式實(shí)現(xiàn)多繼承
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
*/
}
希望本文所述對(duì)大家的Go語(yǔ)言程序設(shè)計(jì)有所幫助。