美文网首页
golang 接口类型多态

golang 接口类型多态

作者: 韩小禹 | 来源:发表于2019-10-31 14:53 被阅读0次
  • 接口是一种契约,实现类型必须满足它,它描述了类型的行为,规定类型可以做什么。接口彻底将类型能做什么,以及如何做分离开来,使得相同接口的变量在不同的时刻表现出不同的行为,这就是多态的本质。
type stockPosition struct{
    ticker string
    sharePrice float32
    count float32
}

type car struct {
    make string
    model string
    price float32
}

func (c car) getValue() float32 {
    return c.price
}

func (s stockPosition) getValue() float32{
    return s.sharePrice * s.count
}

type valualbe interface {
    getValue() float32
}

/**
公用方法打印传入的类型的信息,为了确保所有struct都有一个指定的方法,就要通过定义接口去规定,同一种类型在不同的实例上似乎表现出不同的行为
同一种类型:var v valuable
在不同的实例上:car{}, stockPosition{}
表现出不同的行为:showValue(c), showValue(s)
 */
func showValue(asset valualbe){
    fmt.Printf("value of the asset is %f\n", asset.getValue())
}

func main(){

    var c valualbe = car{"AUDI","R8", 1900000}
    showValue(c)

    var s valualbe = stockPosition{"GOOG", 577.20, 4}
    showValue(s)
}

#value of the asset is 1900000.000000
#value of the asset is 2308.800049

相关文章

  • golang 接口类型多态

    接口是一种契约,实现类型必须满足它,它描述了类型的行为,规定类型可以做什么。接口彻底将类型能做什么,以及如何做分离...

  • 实现golang语言的多态

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

  • 面向对象程序设计(OOP)

    多态: 多态的本质: 父类引用指向子类的对象 或者 接口类型的引用可以只想实现接口的类的实例 多态是一种运行时期的...

  • Go interface详解

      如Go method中提及,Golang没有明确支持多态,但是通过其他手段可以实现类似C++中的多态特性,即本...

  • golang的多态

    定义了一个shape接口 需要注意的问题:如果想将一个结构体指针赋值给shape指针,则要求这个结构体必须实现所有...

  • Golang 接口(多态补充)

  • 【Golang】封装,继承与多态

    面向对象的基本思想主要体现在封装,继承以及多态等的设计与运用上。这篇文章主要讲述,封装、继承与多态在golang中...

  • golang 类型断言

    golang类型断言 类型断言是一个使用在接口值上的操作 有时候,我们可能需要知道某个接口类型的实际类型,比如某个...

  • 聊聊golang的类型断言

    序 本文主要研究一下golang的类型断言 类型断言 断言x不为nil且x为T类型 如果T不是接口类型,则该断言x...

  • go语言反射的总结

    首先巴拉巴拉一下golang反射机制的三个定律 1.反射可以从接口类型到反射类型对象 2.反射可以从反射类型对象到...

网友评论

      本文标题:golang 接口类型多态

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