Files
the-way-to-go_ZH_CN/eBook/11.13.md
Sarlor 681408023f Update 11.13.md (#485)
fix some bug
2018-05-23 11:44:57 +08:00

1.3 KiB
Raw Blame History

总结Go 中的面向对象

我们总结一下前面看到的Go 没有类,而是松耦合的类型、方法对接口的实现。

OO 语言最重要的三个方面分别是:封装,继承和多态,在 Go 中它们是怎样表现的呢?

  • 封装(数据隐藏):和别的 OO 语言有 4 个或更多的访问层次相比Go 把它简化为了 2 层(参见 4.2 节的可见性规则):

    1包范围内的通过标识符首字母小写对象 只在它所在的包内可见

    2可导出的通过标识符首字母大写对象 对所在包以外也可见

类型只拥有自己所在包中定义的方法。

  • 继承:用组合实现:内嵌一个(或多个)包含想要的行为(字段和方法)的类型;多重继承可以通过内嵌多个类型实现
  • 多态用接口实现某个类型的实例可以赋给它所实现的任意接口类型的变量。类型和接口是松耦合的并且多重继承可以通过实现多个接口实现。Go 接口不是 Java 和 C# 接口的变体,而且接口间是不相关的,并且是大规模编程和可适应的演进型设计的关键。

链接