• 技术文章 >后端开发 >Golang

    如何实现golang语言的多态

    WJWJ2020-06-09 17:09:01原创926

    如何实现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教程

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

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:golang
    上一篇:​golang如何设置字体 下一篇:Golang 开发的 Web 有哪些框架?
    大前端线上培训班

    相关文章推荐

    • golang会代替java吗?• golang吉祥物是啥?• golang可以做些什么?• golang可以编写shell脚本吗• golang可以写网站吗• ​golang如何设置字体

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网