在大多數物件導向的程式語言中多繼承都是不支援的。因為在基於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中文網其他相關文章!