Files
the-way-to-go_ZH_CN/eBook/11.13.md
Haigang Zhou e394361869 第十一章修改 (#839)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-05-12 21:55:24 +08:00

24 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 11.13 总结Go 中的面向对象
我们总结一下前面看到的Go 没有类,而是松耦合的类型、方法对接口的实现。
OO 语言最重要的三个方面分别是:封装、继承和多态,在 Go 中它们是怎样表现的呢?
- 封装(数据隐藏):和别的 OO 语言有 4 个或更多的访问层次相比Go 把它简化为了 2 层(参见 [4.2 节](04.2.md)的可见性规则):
1包范围内的通过标识符首字母小写*对象*只在它所在的包内可见
2可导出的通过标识符首字母大写*对象*对所在包以外也可见
类型只拥有自己所在包中定义的方法。
- 继承:用组合实现:内嵌一个(或多个)包含想要的行为(字段和方法)的类型;多重继承可以通过内嵌多个类型实现
- 多态用接口实现某个类型的实例可以赋给它所实现的任意接口类型的变量。类型和接口是松耦合的并且多重继承可以通过实现多个接口实现。Go 接口不是 Java 和 C# 接口的变体,而且接口间是不相关的,并且是大规模编程和可适应的演进型设计的关键。
## 链接
- [目录](directory.md)
- 上一节:[接口与动态类型](11.12.md)
- 下一节:[结构体,集合和高阶函数](11.14.md)