oop - Go 的接口(interface)编程模型与 OOP 相比如何?

标签 oop go

我已经看完了大部分 Go 教程,但我仍然不清楚 Go 的接口(interface)编程模型与 OOP 相比如何?

有人可以解释我如何开始“用 Go 思考”吗?

我很困惑如何定义一个接口(interface),然后基于该接口(interface)创建对象?

Go 是否会在编译期间隐式地为您创建一个具体的实现?

最佳答案

OOP 通常试图解决的问题之一是多态性或两个不同类具有行为相同的实例的能力。通常在 OOP 中,这是通过使用继承来完成的。基类定义了其他类扩展的最小接口(interface)。 Base类的所有子类都可以作为一个Base类。

Go 不是通过继承而是使用接口(interface)来做同样的事情。接口(interface)是行为的“描述”。 Go 中的各个类型通过实现接口(interface)中描述的每个方法来满足此描述。如果一个 Type 确实实现了接口(interface)中描述的所有方法,那么它会自动满足该接口(interface),并且可以由编译器自动转换到该接口(interface)。

关于oop - Go 的接口(interface)编程模型与 OOP 相比如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14322015/

相关文章:

python - Python 中的动态对象命名和类调用

java - 在面向对象编程中,在其方法中引用接口(interface)子项是正确的方法吗?

python - 类方法缺少一个位置参数

php - 有没有办法让 PHP 对象像 native 类型一样指向 "act"?

json - Golang 自定义解码嵌套 JSON

C# - 在声明中设置初始值的缺点

go - Go 中的 math.bits 是否使用机器代码指令?

go - 交换两个数字 golang

go - 当范围超过 JSON 数组时无法迭代所有索引

linux - 将 os.Signal 转换为字符串以便能够将其打印在文件中