新聞中心
這篇文章給大家分享的是go語言中多態(tài)的用法,相信大部分人都還沒學(xué)會這個(gè)技能,為了讓大家學(xué)會,給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、昔陽網(wǎng)絡(luò)推廣、小程序定制開發(fā)、昔陽網(wǎng)絡(luò)營銷、昔陽企業(yè)策劃、昔陽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供昔陽建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
C++里面有多態(tài)是其三大特性之一,那么golang里面的多態(tài)我們該怎么實(shí)現(xiàn)?
golang里面有一個(gè)接口類型interface,任何類型只要實(shí)現(xiàn)了接口類型,都可以賦值,如果接口類型是空,那么所有的類型都實(shí)現(xiàn)了它。因?yàn)槭强章铩?/p>
golang里面的多態(tài)就是用接口類型實(shí)現(xiàn)的,即定義一個(gè)接口類型,里面聲明一些要實(shí)現(xiàn)的功能,注意,只要聲明,不要實(shí)現(xiàn),
例如:type People interface { // 只聲明 GetAge() int GetName() string }
然后你就可以定義你的結(jié)構(gòu)體去實(shí)現(xiàn)里面聲明的函數(shù),你的結(jié)構(gòu)體對象,就可以賦值到該接口類型了。
寫了一個(gè)測試程序:
package main import ( "fmt" ) type Biology interface { sayhi() } type Man struct { name string age int } type Monster struct { name string age int } func (this *Man) sayhi() { // 實(shí)現(xiàn)抽象方法1 fmt.Printf("Man[%s, %d] sayhi\n", this.name, this.age) } func (this *Monster) sayhi() { // 實(shí)現(xiàn)抽象方法1 fmt.Printf("Monster[%s, %d] sayhi\n", this.name, this.age) } func WhoSayHi(i Biology) { i.sayhi() } func main() { man := &Man{"我是人", 100} monster := &Monster{"妖怪", 1000} WhoSayHi(man) WhoSayHi(monster) }
運(yùn)行結(jié)果:
Man[我是人, 100] sayhi
Monster[妖怪, 1000] sayhi
關(guān)于go語言中多態(tài)的用法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁題目:go語言中多態(tài)的用法
分享URL:http://fisionsoft.com.cn/article/iijsdi.html