GO多态

作者: 分类: go 时间: 2026-08-11 评论: 暂无评论

1.多态是什么
通俗讲就是 “一个接口,多种形态”。它指的是:同一个行为(方法名),作用于不同的对象时,会产生不同的执行结果。
2.举例子

// 定义一个函数,它接受 A 接口类型
func Process(a A) {
    // 这里不管传入的是谁,直接调用 ShowA
    fmt.Println(a.ShowA()) 
}

func main() {
    w1 := Work{3}   // ShowA 返回 i+10
    w2 := OtherWork{5} // 假设另一个结构体,ShowA 返回 i*2

    Process(w1) // 输出 13
    Process(w2) // 输出 10(假设 OtherWork 的 ShowA 是乘以2)
}

在这个例子里:

Process 函数只关心参数是 A 类型,它根本不知道传入的是 Work 还是 OtherWork。
但运行时,w1 和 w2 各自执行了自己独有的 ShowA 逻辑。

标签: none

订阅本站(RSS)