其实刚看是看 go 语言的时候
觉得挺不习惯的
首先就是其他语言中的类
在 go 语言中变成了结构体
而类中的方法
也变成了写在结构外面的形式
后来看多了
其实也习惯了
报错 go 语言中的类型写在了变量的后面
java 看多了
就觉的 go 有些奇怪
其实都是那一套
至于为什么写的不一样
估计是故意写的吧
省的和其他语言长得太像,被人风言风语
而接口呢
应该也就是和 java 中的接口一模一样
为了实现多态
初看的时候不是很理解
后来看到了这个例子
package main
import "fmt"
type cat struct{}
type dog struct{}
func (c cat) say(){fmt.Println("喵喵喵")
}
func (d dog) say(){fmt.Println("汪汪汪")
}
type animals interface{say()
}
func hit(ani animals){ani.say()
}
func main(){c := cat{}
d := dog{}
c.say()
d.say()
hit(c)
hit(d)
}
go 中因为是强数据类型的
传参的时候就不能那么随意了
必须函数里定义什么数据类型就传入什么数据类型
一旦想传入多个数据类型
多态就很有必要
总结:接口就是为了方便多态
总之,golang 也是一个面向对象的语言,封装、继承、多态,都是适用的。
正文完