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

溫馨提示×

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

小億
89
2023-11-28 14:19:52
欄目: 編程語言

在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接口的類型,這就是多態的表現。根據實際的類型,調用對應類型的方法。

0
宁南县| 元朗区| 永善县| 汨罗市| 平罗县| 西林县| 临清市| 介休市| 沭阳县| 沁水县| 双流县| 睢宁县| 永福县| 青铜峡市| 张家港市| 永城市| 汝城县| 大城县| 华坪县| 隆昌县| 阿拉善右旗| 镶黄旗| 永修县| 三都| 永平县| 修文县| 尖扎县| 呼伦贝尔市| 东平县| 牡丹江市| 准格尔旗| 定兴县| 迭部县| 遂平县| 怀仁县| 南雄市| 陵川县| 万安县| 井研县| 铁岭市| 武威市|