Go语言并不像其他面向对象语言那样直接支持面向对象的特性。
而是通过结构体(struct)、方法和接口实现面向对象的方式。
具体来说,包含以下部分:
一、类 – 使用结构体实现
Go语言使用struct
关键字定义结构体实现”类”的概念。
type Person struct {
Name string
Age int
}
二、方法 – 函数达到面向对象
Go语言使用receiver
将方法绑定到结构体上,实现面向对象中的”方法”。
func (r ReceiverType) MethodName(parameters) returns {
// ...
}
例如:
func (p Person) Speak() {
fmt.Println("我的名字是 ", p.Name)
}
三、实现多态 – 使用接口
接口实现多态性,一个类型只要实现了指定的方法就认为实现了这个接口。
type Animal interface {
Speak()
Run()
}
不同的结构体实现相同的接口,就实现了多态性。
四、信息隐藏 – 私有属性
Go语言使用 Capitalized Name定义方法或属性,实现私有或公开的效果。
这种方式实现了面向对象中的信息隐藏。
总的来说,Go语言实现面向对象主要使用:
- 结构体实现类
- 接收者实现方法
- 接口实现多态
- 大小写名称实现访问权限
这种方式模拟实现了面向对象的基本概念。