美文网首页Go程序员Go语言实践
go语言中的继承和实现

go语言中的继承和实现

作者: guazi1020 | 来源:发表于2019-04-01 17:12 被阅读2次

go语言没有类,只有结构体。以及还有接口,如何利用结构体和接口来实现类似与java的继承和实现呢?
我试着整理一下。

实现思路

实现发送的方法。定义一个发送的对象(info)-发送时需要的属性参数,定义发送接口(send)。如果我们需要邮件发送,定义邮件对象(email),实现发送接口.

1.定义结构体

a)定义一个信息结构体-info

//Info 信息
type Info struct {
    name string
}

b)定义一个邮件信息/短信信息,包含(继承)信息结构体

//InfoEmail 邮件信息
type InfoEmail struct {
    Info
    address string // 邮件独有属性
}

//InfoSMS 短信
type InfoSMS struct {
    Info
    content string // 短信独有属性
}
2.定义发送接口-ISend

a)定义一个接口声明方法

//ISend 发送接口
type ISend interface {
    send()
}

b)邮件/短信分别实现

// 短信发送实现
func (infoSMS *InfoSMS) send() {
    fmt.Println(math.Exp(10), "i am infoSMS send")

}
// 邮件发送实现
func (infoEmail *InfoEmail) send() {
    fmt.Println("i am infoEmail send")
}
3、使用

a)主程序调用

func main() {
    var Mysend ISend
    Mysend = new(InfoEmail)
    Mysend.send()
    Mysend = new(InfoSMS)
    Mysend.send()
}

b)结果


image.png
结论

总体上是实现了继承和实现的面向对象的思路。如果应用到生产中的话,还是应该用工厂的模式来实现,go语言还没深入研究,各位看官还请指点一二。如果觉得还可以,请支持一下,谢谢!

相关文章

  • TODO:Go语言goroutine和channel使用

    TODO:Go语言goroutine和channel使用 goroutine是Go语言中的轻量级线程实现,由Go语...

  • go语言中的继承和实现

    go语言没有类,只有结构体。以及还有接口,如何利用结构体和接口来实现类似与java的继承和实现呢?我试着整理一下。...

  • Go语言之Interface(二)

    使用指针接收器和值接收器实现接口 实现多个接口 接口嵌套 在Go语言中没有继承的概念,但是通过组合可以实现继承的效...

  • Go语言之匿名组合

    一. 概述 Go语言中没有封装,继承,多态的概念,但是可以通过别的方式来实现这些特征 封装:使用方法实现 继承:使...

  • Go语言 重写方法

    类似于Java中的继承,子类继承并重写父类的方法,Go语言也提供了这样的实现。Go语言中可以创建一个或者多个类型作...

  • go面向对象的理解

    在go语言中没有面向对象的概念,但是可以通过下面方式实现面向对象的特征 封装, 通过方法实现 继承, 通过匿名字段...

  • 无标题文章

    继承是OO语言中一个重要的特性和概念。许多的OO语言中都支持两种继承方式:接口继承和实现继承。 ECMAScrip...

  • 原型链继承的优缺点

    原型链继承的优缺点? 在OO语言中,继承方式通常有两种接口继承和实现继承。在JavaScript中无法实现接口继承...

  • JS--继承(原型继承)

    继承是很多OO语言中都支持的,基本上都支持两种继承方式:接口继承和实现继承。接口继承只继承方法名,实现继承则继承实...

  • 继承

    引言 继承是OO语言中一个最为人津津乐道的概念。大部分的OO语言中都支持两种继承方式:接口继承和实现继承。接口继承...

网友评论

    本文标题:go语言中的继承和实现

    本文链接:https://www.haomeiwen.com/subject/finvbqtx.html