- 可以將子類變量轉換爲它的任何超類嗎?
- 超類變量可以分配任何子類變量嗎?
- 超類可以分配任何變量嗎?
- 如果是這樣,一個接口變量是否可以從任何實現類中分配一個變量?
1
A
回答
7
- 是
- 您可以在子類的實例分配的超可變
- 咦?
- 您可以在類的實例分配給任何接口類型的變量,這個類實現
+0
我認爲超類不能分配_any_變量,只是一種兼容類型。 – 2011-02-03 02:04:26
3
只是爲了清楚起見,可以考慮:
class A extends B implements C { }
凡A
是子類,B
是超類,C
是A
實現的接口。
子類可以向上投射到任何超類。
B b = new A();
超類不能被向下轉換爲任何子類(這是不合理的,因爲子類可能有能力超沒有)。你不能這樣做:
A a = new B(); // invalid!
超類可以分配給任何適當類型的變量。
A q = new A(); // sure, any variable q or otherwise...
一個類可以被分配給一個實現接口的類型的變量。
C c = new A();
0
能子類變量轉換爲超類的任何 ?
是
而且可以在超變量是 分配任何子類變量?
是
能超類被分配任何 變量?
是
如果是這樣,可以在接口變量是 分配來自任何 實現類變量?
是
10
是不是所有的狗也是動物嗎?
所有的動物也是狗嗎?
如果你需要一隻動物,並且我給你一隻狗,那總是可以接受的嗎?
如果你專門需要一隻狗,但我給你任何動物,會有問題嗎?
如果你需要一些東西你可以開車,但是你不關心它是什麼,只要它有像。加速和.Steer這樣的方法,你關心它是保時捷還是救護車?
0
是的,這通常是主要想法behing polymorphism。
假設你有一些形狀:圓形,方形,三角形。你會有:
class Shape { ... }
class Circle extends Shape { ... }
class Square extends Shape { ... }
class Triangle extends Shape { ... }
繼承的想法是,一個圓是一個形狀。所以,你可以這樣做:
Shape x = ...;
Point p = x.getCenterPosition();
你不需要關心其具體類型x
變量。
相關問題
- 1. Java繼承的子類和超類
- 2. Java調用子類和超類
- 3. Java新手入門:超類和子類
- 4. Java中的超類和子類
- 5. 子類和超類
- 6. 超類和子類
- 7. 從超類Java實例化子類Java
- 8. PHP超類和子類
- 9. 超類和子類錯誤
- 10. 超類和子類在PHP
- 11. C++超類和子類
- 12. 的Java等於超和子類
- 13. 引用java中超類的子類
- 14. 超類的Java子類構造函數
- 15. Java - 從子類發送值到超類
- 16. Ruby的類超類和子類結構
- 17. 類的子類超類
- 18. 匕首上超類和子類
- 19. 什麼是子類和超類?
- 20. 繼承 - UIAlertView在超類和子類
- 21. AS3超類變量和子類錯誤
- 22. 重寫超和子類
- 23. 在java中創建超類的類型的子類對象
- 24. 從子類(Java)設置超類中字段的類型
- 25. 工廠類自動加載Java中特定超類的子類?
- 26. 基於Java中超類和子類的泛型類型的多重限制
- 27. 超類/子類方法
- 28. 爪哇 - 超類/子類
- 29. 從超類訪問子類?
- 30. 超類的子類參考
您應該明確區分變量和值的概念。現在,你的問題非常混亂。 – 2011-02-03 02:03:27
您可能需要閱讀contra// covariance,因爲如果稍微改變問題,答案將會改變。你可以得到一個粗略的想法,它將是一個不同的答案通過閱讀這個:http://stackoverflow.com/questions/1184295/java-covariance-question – 2011-02-03 02:04:48