我已经看完了大部分 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/