Go既不是向java一样面向对象的语言,也不是像c一样面向过程的语言,它并没有明显的倾向。它的特点就是灵活,更倾向于让读者去思考如何使用它,因此更加高效便捷。事实上,Go也可以用来实现面向对象,实现与之类似的功能。
封装
封装就是将抽象出的字段和对字段的操作封装在一起,数据被保护在内部,程序其他包只能通过被授权的方式才能对字段进行操作。
Go实现封装通过首字母大小写来判断,首字母大写,外部包可以对其进行操作(相当于Java语言中的Pulic);首字母小写外部包则不可以访问(相当于Java语言中的Private)。
继承
GO语言的继承是通过组合的方式来实现的,举例:
type Person struct {
name string
age int
}
tpye Chinese struct {
Person
nationality string
}
多态
go语言的多态是由接口来实现的,接口中写明它所拥有的方法。如果一个结构体实现了这个接口中的所有方法,那么我们就认为这个结构体实现了这个类。举例:
type Person interface{
Say()
}
type Chinese struct {
name string
age int
}
func (c Chinese) Say(){
fmt.Println("Chinese")
}