From 858170db37733931f04491a2f01089b7e0647fe1 Mon Sep 17 00:00:00 2001 From: dake Date: Mon, 2 Nov 2015 22:25:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BF=BB=E8=AF=91=2011.13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eBook/11.13.md | 22 ++++++++++++++++++++++ eBook/11.14.md | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 eBook/11.14.md diff --git a/eBook/11.13.md b/eBook/11.13.md index b0b9d33..30939a5 100644 --- a/eBook/11.13.md +++ b/eBook/11.13.md @@ -1,2 +1,24 @@ # 总结:Go 中的面向对象 +我们总结一下前面看到的:Go 没有类,而是松耦合的类型、方法对接口的实现。 + +OO 语言最重要的三个方面分别是:封装,继承和多态,在 Go 中它们是怎样表现的呢? + +- 封装(数据隐藏):和别的 OO 语言有 4 个或更多的访问层次相比,Go 把它简化为了 2 层(参见 4.2 节的可见性规则): + + 1)包范围内的:通过标识符首字母小写,`对象`只在它所在的包内可见 + + 2)可导出的:通过标识符首字母大写,`对象`在所在包以外可见 + +类型只拥有自己所在包中定义的方法。 + +- 继承:用组合实现:内嵌一个(或多个)包含想要行为(字段和方法)的类型;多重继承可以通过内嵌多个类型实现 + +- 多态:用接口实现:某个类型的实例可以赋给它实现的任意接口的变量。类型和接口是松耦合的,并且多重继承可以通过实现多个接口达到。Go 接口不是 Java 和 C# 接口的变体,而且:接口间是不相关的,并且是大规模编程和可适应演进型设计的关键。 + + +## 链接 + +- [目录](directory.md) +- 上一节:[接口与动态类型](11.12.md) +- 下一节:[结构体,集合和高阶函数](11.14.md) \ No newline at end of file diff --git a/eBook/11.14.md b/eBook/11.14.md new file mode 100644 index 0000000..de5168f --- /dev/null +++ b/eBook/11.14.md @@ -0,0 +1,2 @@ +# 结构体,集合和高阶函数 +