首页后端开发其他后端知识实现Golang语言多态的方法是什么?

实现Golang语言多态的方法是什么?

时间2024-03-27 00:14:03发布访客分类其他后端知识浏览837
导读:这篇文章给大家分享的是“实现Golang语言多态的方法是什么?”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“实现Golang语言多态的方法是什么?”吧。 如何实...
这篇文章给大家分享的是“实现Golang语言多态的方法是什么?”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“实现Golang语言多态的方法是什么?”吧。


如何实现golang语言的多态?

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

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

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

例如:type People interface {

    // 只声明
    GetAge() int 
    GetName() string 
}

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

写了一个测试程序:

package main
import (
    "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] sayhi\n", this.name, this.age)
}

func (this *Monster) sayhi()  {
 // 实现抽象方法1
    fmt.Printf("Monster[%s, %d] sayhi\n", 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语言多态的方法是什么?”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

golang

若转载请注明出处: 实现Golang语言多态的方法是什么?
本文地址: https://pptw.com/jishu/653852.html
css规则分别有哪些种类型? Golang是怎么设置字体的呢?

游客 回复需填写必要信息