久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

go語言實現多態的方法是什么

198次閱讀
沒有評論

共計 920 個字符,預計需要花費 3 分鐘才能閱讀完成。

在 Go 語言中,可以使用接口來實現多態。多態是指同一個接口可以被不同的類型實現,從而可以根據實際的類型調用不同的方法。

要實現多態,首先需要定義一個接口。接口定義了一組方法的集合,任何實現了這些方法的類型都可以被認為是這個接口的實現。

接口的定義如下:

type Shape interface {Area() float64
    Perimeter() float64
}

接下來,可以定義不同的類型來實現這個接口。比如,可以定義一個矩形類型和一個圓形類型:

type Rectangle struct {width  float64
    height float64
}

func (r Rectangle) Area() float64 {return r.width * r.height
}

func (r Rectangle) Perimeter() float64 {return 2 * (r.width + r.height)
}

type Circle struct {radius float64
}

func (c Circle) Area() float64 {return math.Pi * c.radius * c.radius
}

func (c Circle) Perimeter() float64 {return 2 * math.Pi * c.radius
}

這樣,Rectangle 和 Circle 就都實現了 Shape 接口的兩個方法,它們分別是 Area 和 Perimeter。

接下來,可以使用這些實現了 Shape 接口的類型來進行多態的調用。比如,可以定義一個函數來計算形狀的面積:

func PrintArea(s Shape) {fmt.Println("Area:", s.Area())
}

然后,可以分別傳入 Rectangle 和 Circle 類型的實例來調用這個函數:

r := Rectangle{width: 5, height: 3}
c := Circle{radius: 2}

PrintArea(r) // 輸出: Area: 15
PrintArea(c) // 輸出: Area: 12.566370614359172

在調用 PrintArea 函數時,傳入的參數可以是任何實現了 Shape 接口的類型,這就是多態的表現。根據實際的類型,調用對應類型的方法。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-13發表,共計920字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 永平县| 漠河县| 陆丰市| 清涧县| 社旗县| 女性| 即墨市| 宜兰县| 无锡市| 新乐市| 吉林市| 黎城县| 精河县| 万盛区| 柘荣县| 麻城市| 铁岭县| 资源县| 柏乡县| 城口县| 家居| 晋城| 阳泉市| 云梦县| 灌阳县| 崇州市| 色达县| 宝鸡市| 永济市| 河北省| 徐汇区| 富锦市| 左权县| 探索| 岗巴县| 阿瓦提县| 静海县| 东乌| 宁南县| 宁津县| 辽宁省|