Go語言使用組合的方式實現(xiàn)多繼承的方法
更新時間:2015年02月08日 11:56:52 作者:books1958
這篇文章主要介紹了Go語言使用組合的方式實現(xiàn)多繼承的方法,實例分析了多繼承的原理與使用組合方式來實現(xiàn)多繼承的技巧,需要的朋友可以參考下
本文實例講述了Go語言使用組合的方式實現(xiàn)多繼承的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
在大多數(shù)面向?qū)ο蟮木幊陶Z言中多繼承都是不支持的。因為在基于class的體系中,多繼承極大地增加了編譯器的復(fù)雜性。
Go語言使用組合的方式實現(xiàn)繼承,因此也可以很簡單的實現(xiàn)多繼承。
復(fù)制代碼 代碼如下:
//使用組合的方式實現(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
*/
}
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
*/
}
希望本文所述對大家的Go語言程序設(shè)計有所幫助。
您可能感興趣的文章:
- Golang正整數(shù)指定規(guī)則排序算法問題分析
- Golang最大遞減數(shù)算法問題分析
- Go語言展現(xiàn)快速排序算法全過程的思路及代碼示例
- 深入解析快速排序算法的原理及其Go語言版實現(xiàn)
- GO語言利用K近鄰算法實現(xiàn)小說鑒黃
- Go語言實現(xiàn)漢諾塔算法
- Go語言通過Luhn算法驗證信用卡卡號是否有效的方法
- go語言睡眠排序算法實例分析
- Go語言實現(xiàn)AzDG可逆加密算法實例
- Go語言實現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法實例
- Go語言算法之尋找數(shù)組第二大元素的方法
- Golang排列組合算法問題之全排列實現(xiàn)方法
相關(guān)文章
手把手教你vscode配置golang開發(fā)環(huán)境的步驟
這篇文章主要介紹了手把手教你vscode配置golang開發(fā)環(huán)境的步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
Go語言實現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法實例
這篇文章主要介紹了Go語言實現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)比較算法,實例分析了樹形結(jié)構(gòu)數(shù)據(jù)比較算法的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02
GoLang日志監(jiān)控系統(tǒng)實現(xiàn)
這篇文章主要介紹了GoLang日志監(jiān)控系統(tǒng)的實現(xiàn)流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-12-12

