栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

如何实现golang语言的多态

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何实现golang语言的多态

如何实现golang语言的多态?

C++里面有多态是其三大特性之一,那么golang里面的多态我们该怎么实现?

golang里面有一个接口类型interface,任何类型只要实现了接口类型,都可以赋值,如果接口类型是空,那么所有的类型都实现了它。因为是空嘛。

golang里面的多态就是用接口类型实现的,即定义一个接口类型,里面声明一些要实现的功能,注意,只要声明,不要实现,

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

然后你就可以定义你的结构体去实现里面声明的函数,你的结构体对象,就可以赋值到该接口类型了。

写了一个测试程序:

package mainimport (    "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] sayhin", this.name, this.age)}func (this *Monster) sayhi()  { // 实现抽象方法1    fmt.Printf("Monster[%s, %d] sayhin", 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

相关推荐:Golang教程

以上就是如何实现golang语言的多态的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794029.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号