首頁 >後端開發 >Golang >golang 可以多繼承嗎

golang 可以多繼承嗎

(*-*)浩
(*-*)浩原創
2019-12-30 15:03:052770瀏覽

golang 可以多繼承嗎

在大多數物件導向的程式語言中多繼承都是不支援的。因為在基於class的體系中,多重繼承大幅增加了編譯器的複雜度。

Go語言使用組合的方式實作繼承,因此也可以很簡單的實作多重繼承。                                  (建議學習中: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
	*/
}

以上是golang 可以多繼承嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn