diff --git a/docs/book/09-Polymorphism.md b/docs/book/09-Polymorphism.md index c865cea..95dabd2 100644 --- a/docs/book/09-Polymorphism.md +++ b/docs/book/09-Polymorphism.md @@ -1168,6 +1168,8 @@ SadActor 纯粹的替代意味着派生类可以完美地替代基类,当使用它们时,完全不需要知道这些子类的信息。也就是说,基类可以接收任意发送给派生类的消息,因为它们具有完全相同的接口。只需将派生类向上转型,不要关注对象的具体类型。所有一切都可以通过多态处理。 +![](../images/1562409366638.png) + 按这种方式思考,似乎只有纯粹的“is - a”关系才是唯一明智的做法,其他任何设计只会导致混乱且注定失败。这其实也是个陷阱。一旦按这种方式开始思考,就会转而发现继承扩展接口(遗憾的是,extends 关键字似乎怂恿我们这么做)才是解决特定问题的完美方案。这可以称为“is - like - a” 关系,因为派生类就像是基类——它有着相同的基本接口,但还具有需要额外方法实现的其他特性: ![](../images/1562409366637.png) diff --git a/docs/images/1561774164644.png b/docs/images/1561774164644.png deleted file mode 100644 index 7444d9a..0000000 Binary files a/docs/images/1561774164644.png and /dev/null differ diff --git a/docs/images/1562204648023.png b/docs/images/1562204648023.png index 6f5041c..d11af64 100644 Binary files a/docs/images/1562204648023.png and b/docs/images/1562204648023.png differ diff --git a/docs/images/1562252767216.png b/docs/images/1562252767216.png index f931261..e3b63ba 100644 Binary files a/docs/images/1562252767216.png and b/docs/images/1562252767216.png differ diff --git a/docs/images/1562406479787.png b/docs/images/1562406479787.png index 654348f..8f63b72 100644 Binary files a/docs/images/1562406479787.png and b/docs/images/1562406479787.png differ diff --git a/docs/images/1562409366637.png b/docs/images/1562409366637.png index 3c266d5..8bf7a42 100644 Binary files a/docs/images/1562409366637.png and b/docs/images/1562409366637.png differ diff --git a/docs/images/1562409366638.png b/docs/images/1562409366638.png new file mode 100644 index 0000000..5996bf9 Binary files /dev/null and b/docs/images/1562409366638.png differ diff --git a/docs/images/1562409926765.png b/docs/images/1562409926765.png index 563632d..b79a4b1 100644 Binary files a/docs/images/1562409926765.png and b/docs/images/1562409926765.png differ