2012-12-16 58 views
0

當是明智使用多態性在繼承?聚對繼承

所以,讓我們說我們有

public class Lion extends Animals {} ; 

OR

Animals ani = new Lion(); 

我想大多喜歡繼承,因爲我們有堅實的階級使用。

它會降低到哪一個跑得快?

+2

目前還不清楚你在這裏有什麼矛盾。一般而言,多態性是通過繼承來實現的。 –

+0

在*的Java *,缺一不可繼承*或*接口使用多態。上面的'extends'示例顯示了繼承,並且賦值顯示了[* type widening *](http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html),但Interfaces會工作也一樣。 (有些人認爲,組成應在繼承使用,其他人認爲,接口應始終繼承使用。) – 2012-12-16 19:26:53

+0

(我猜人們可以從技術上認爲,反思也使多態性,但我不會承認,作爲一個理智的也可以模擬多態性* - 例如像C型開關調度 - 但這也不屬於語言級別的支持。) – 2012-12-16 19:36:57

回答

0

沒有或至此。

public class Lion extends Animals {} ; 

定義了一類獅子,從一類動物

Animals ani = new Lion(); 

限定型動物的可變ANI下降和獅子的新實例分配給它。

如果獅子不是從動物下降,那麼你會得到一個錯誤,就是所有我們可以說。