8000 fix #389 · GitHub-SheBin/OnJava8@e652816 · GitHub
[go: up one dir, main page]

Skip to content

Commit e652816

Browse files
committed
1 parent e2542e7 commit e652816

File tree

8 files changed

+2
-0
lines changed

8 files changed

+2
-0
lines changed

docs/book/09-Polymorphism.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,8 @@ SadActor
11681168

11691169
纯粹的替代意味着派生类可以完美地替代基类,当使用它们时,完全不需要知道这些子类的信息。也就是说,基类可以接收任意发送给派生类的消息,因为它们具有完全相同的接口。只需将派生类向上转型,不要关注对象的具体类型。所有一切都可以通过多态处理。
11701170

1171+
![](../images/1562409366638.png)
1172+
11711173
按这种方式思考,似乎只有纯粹的“is - a”关系才是唯一明智的做法,其他任何设计只会导致混乱且注定失败。这其实也是个陷阱。一旦按这种方式开始思考,就会转而发现继承扩展接口(遗憾的是,extends 关键字似乎怂恿我们这么做)才是解决特定问题的完美方案。这可以称为“is - like - a” 关系,因为派生类就像是基类——它有着相同的基本接口,但还具有需要额外方法实现的其他特性:
11721174

11731175
![](../images/1562409366637.png)

docs/images/1561774164644.png

-4.24 KB
Binary file not shown.

docs/images/1562204648023.png

37.9 KB
Loading

docs/images/1562252767216.png

71.7 KB
Loading

docs/images/1562406479787.png

25.1 KB
Loading

docs/images/1562409366637.png

65.4 KB
Loading

docs/images/1562409366638.png

29.5 KB
Loading

docs/images/1562409926765.png

13 KB
Loading

0 commit comments

Comments
 (0)
0