91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go語言中多態的用法

發布時間:2020-06-11 11:41:50 來源:億速云 閱讀:310 作者:Leah 欄目:編程語言

這篇文章給大家分享的是go語言中多態的用法,相信大部分人都還沒學會這個技能,為了讓大家學會,給大家總結了以下內容,話不多說,一起往下看吧。

C++里面有多態是其三大特性之一,那么golang里面的多態我們該怎么實現?

golang里面有一個接口類型interface,任何類型只要實現了接口類型,都可以賦值,如果接口類型是空,那么所有的類型都實現了它。因為是空嘛。

golang里面的多態就是用接口類型實現的,即定義一個接口類型,里面聲明一些要實現的功能,注意,只要聲明,不要實現,

例如:type People interface {
    // 只聲明
    GetAge() int 
    GetName() string 
}

然后你就可以定義你的結構體去實現里面聲明的函數,你的結構體對象,就可以賦值到該接口類型了。

寫了一個測試程序:

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()  { // 實現抽象方法1
    fmt.Printf("Man[%s, %d] sayhi\n", this.name, this.age)
}
func (this *Monster) sayhi()  { // 實現抽象方法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)
}

運行結果:

Man[我是人, 100] sayhi

Monster[妖怪, 1000] sayhi

關于go語言中多態的用法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大安市| 邹城市| 蓝山县| 大港区| 绥中县| 陇川县| 肥东县| 伊吾县| 邵东县| 张家港市| 宜兰市| 新乡县| 灵台县| 繁峙县| 阳春市| 安国市| 肇州县| 长乐市| 云霄县| 禹州市| 驻马店市| 宝丰县| 高淳县| 哈尔滨市| 大庆市| 蓝田县| 阿图什市| 和田市| 乐安县| 溧水县| 恭城| 鄢陵县| 交口县| 英德市| 永安市| 哈密市| 襄汾县| 肇庆市| 兴仁县| 科技| 民丰县|