1.1.1. 一、多肽的说明。
多肽是面向对象的三大特征之一,golang中多肽通过接口实现。
比如:定义方法或函数的时候,参数可以是一个接口类型,实际调用的时候可以传递这个接口的实现。
1.1.2. 二、多肽的示例:
1、多肽参数:
test 函数接收接口做参数。实现多肽。
// 接口
type IUser interface {
Add(num1 int,num2 int) int
}
type UserImpl struct {
}
// 接口的实现
func (ui UserImpl) Add(num1 int,num2 int) int {
return num1 + num2
}
// 多肽,接收接口做参数
func test(iu IUser) {
fmt.Println(iu.Add(13,45))
}
func main() {
ui := UserImpl{}
//调用函数,传递接口的实现
test(ui)
}
2、多肽数组:
Cat 和Dog 都实现了Sports接口。声明Sports类型的数组之后,里面可以存放Cat 和Dog。
// 接口
type Sports interface {
Run()
}
// 猫
type Cat struct {
}
func (c Cat) Run() { // 接口的实现
fmt.Println("小猫跑步。。。")
}
// 狗
type Dog struct {
}
func (c Dog) Run() { // 接口的实现
fmt.Println("小狗跑步。。。")
}
func main() {
var testArr [3]Sports
testArr[0] = Cat{}
testArr[1] = Dog{}
// [{} {} <nil>]
fmt.Println(testArr)
}