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

溫馨提示×

golang interface多態怎么實現

小億
80
2023-10-31 12:01:19
欄目: 編程語言

在Go語言中,通過接口可以實現多態。接口是一種抽象類型,它定義了一組方法的簽名。任何類型只要實現了接口中定義的方法,就可以被看作是該接口的實現類型。

下面是一個示例,展示了如何在Go語言中實現多態:

package main

import "fmt"

// 定義一個接口
type Shape interface {
    Area() float64
}

// 定義一個結構體,表示矩形
type Rectangle struct {
    Width  float64
    Height float64
}

// 實現接口中的方法
func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

// 定義一個結構體,表示圓形
type Circle struct {
    Radius float64
}

// 實現接口中的方法
func (c Circle) Area() float64 {
    return 3.14 * c.Radius * c.Radius
}

func main() {
    // 創建一個矩形對象
    rectangle := Rectangle{Width: 10, Height: 5}
    // 創建一個圓形對象
    circle := Circle{Radius: 5}

    // 利用接口實現多態
    shapes := []Shape{rectangle, circle}

    // 遍歷shapes,調用不同類型的Area方法
    for _, shape := range shapes {
        fmt.Println(shape.Area())
    }
}

在上面的示例中,我們定義了一個Shape接口,并在RectangleCircle結構體中實現了該接口的方法。然后我們創建了一個shapes切片,其中包含了一個矩形和一個圓形對象。接著,利用接口實現了多態,通過遍歷shapes切片,調用不同類型的Area方法。

輸出結果為:

50
78.5

可以看到,雖然shapes切片中的元素類型不同,但是通過接口實現了多態,可以調用不同類型的方法。

0
本溪市| 通州区| 习水县| 皋兰县| 连州市| 青阳县| 同德县| 枣庄市| 南和县| 福建省| 通渭县| 阿荣旗| 高唐县| 温泉县| 南通市| 获嘉县| 静宁县| 河曲县| 乌拉特前旗| 兴业县| 奉节县| 桂平市| 册亨县| 留坝县| 株洲县| 绵竹市| 漳州市| 集安市| 临夏县| 正定县| 方正县| 阿图什市| 威远县| 滕州市| 白沙| 保康县| 永吉县| 麻城市| 夏河县| 磐安县| 来宾市|