多繼承可以看作是單繼承的擴展。所謂多繼承是指派生類具有多個基類,派生類與每個基類之間的關系仍可看作是一個單繼承。
在大多數面向對象的編程語言中多繼承都是不支持的。因為在基于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 */ }
以上就是golang 可以多繼承嗎的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。