mirror of
https://github.com/LingCoder/OnJava8.git
synced 2024-10-28 03:40:45 +08:00
parent
8fcffc3cdb
commit
f70058c853
@ -869,7 +869,7 @@ public class Wind extends Instrument {
|
||||
|
||||
该术语是基于传统的类继承图:图最上面是根,然后向下铺展。(当然你可以以任意方式画你认为有帮助的类图。)于是,**Wind.java** 的类图是:
|
||||
|
||||
![Wind 类图](../images/1561774164644.png)
|
||||
![Wind 类图](../images/1562204648023.png)
|
||||
|
||||
继承图中派生类转型为基类是向上的,所以通常称作*向上转型*。因为是从一个更具体的类转化为一个更一般的类,所以向上转型永远是安全的。也就是说,派生类是基类的一个超集。它可能比基类包含更多的方法,但它必须至少具有与基类一样的方法。在向上转型期间,类接口只可能失去方法,不会增加方法。这就是为什么编译器在没有任何明确转型或其他特殊标记的情况下,仍然允许向上转型的原因。
|
||||
|
||||
|
@ -184,7 +184,7 @@ Java 中除了 **static** 和 **final** 方法(**private** 方法也是隐式
|
||||
|
||||
形状的例子中,有一个基类称为 **Shape** ,多个不同的派生类型分别是:**Circle**,**Square**,**Triangle** 等等。这个例子之所以好用,是因为我们可以直接说“圆(Circle)是一种形状(Shape)”,这很容易理解。继承图展示了它们之间的关系:
|
||||
|
||||
![形状继承图](../images/1562204648023.png)
|
||||
![形状继承图](../images/1561774164644.png)
|
||||
|
||||
向上转型就像下面这么简单:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user