标签:代码 动态类型 port ram 输出 例子 一个 return pos
一、接口是什么
接口提供了一种方式来 说明 对象的行为:如果谁能搞定这件事,它就可以用在这儿。
接口定义了一组方法(方法集),但是这些方法不包含(实现)代码:它们没有被实现(它们是抽象的)。接口里也不能包含变量。
格式:
type Namer interface { Method1(param_list) return_type Method2(param_list) return_type ... }
接口的特性:
二、例子:
package main import "fmt" type stockPosition struct { ticker string sharePrice float32 count float32 } func (s stockPosition) getValue() float32{ return s.sharePrice * s.count } type car struct { make string model string price float32 } func (c car) getValue() float32 { return c.price } type valuable interface { getValue() float32 } func showValue(asset valuable){ fmt.Printf("Value of the asset is %f\n", asset.getValue()) } func main () { var o valuable = stockPosition{"GOOG", 577.20, 4} showValue(o) o = car{"BWM","M3", 66500} showValue(o) }
输出:
Value of the asset is 2308.800049
Value of the asset is 66500.000000
接口是一种契约,实现类型必须满足它,它描述了类型的行为,规定类型可以做什么。接口彻底将类型能做什么,以及如何做分离开来,使得相同接口的变量在不同的时刻表现出不同的行为,这就是多态的本质。
标签:代码 动态类型 port ram 输出 例子 一个 return pos
原文地址:https://www.cnblogs.com/liubiaos/p/9376415.html