-2
A
回答
1
沒有理由它有事情做與內存回答。它更簡單。子類可以通過添加新方法來擴展其超類的行爲。雖然沒有給出,但超類擁有其子類的所有方法。看看下面的例子:
public class Parent {
public void parentMethod() {}
}
public class Child extends Parent {
public void childMethod() {}
}
現在讓我們想想,如果你可以的Parent
一個實例分配給Child
類型的變量會發生什麼。
Child c = new Parent(); //compiler error
c
由於是Child
類型的,它允許調用方法childMethod()
。但由於它實際上是一個Parent
實例,它沒有此方法,所以這會導致編譯器或運行時問題(取決於檢查何時完成)。
另一種方式是沒有問題的,因爲你不能通過擴展一個類刪除方法。
Parent p = new Child(); //allowed
Child
是Parent
一個子類,因此繼承了parentMethod()
。所以你可以保存地調用這個方法。
+0
謝謝SilverNak^_ ^ –
相關問題
- 1. 爲什麼不能將靜態類變量分配給堆棧?
- 2. 爲什麼我不能將TextLength分配給Long值類型?
- 3. 爲什麼我不能在子類中分配變量?
- 4. 爲什麼這種類型不能分配給參數類型?
- 5. TS:爲什麼可以將無效類型分配給泛型類型變量?
- 6. 爲什麼我不能將我的超類對象分配給擴展類?
- 7. 爲什麼子類不能繼承父類的常量?
- 8. 爲什麼超類分配給子類會給出錯誤?
- 9. 分配給int類型變量的字變量,它前面有ffff ...爲什麼?
- 10. 爲什麼Pagingnation類的變量不能分配?
- 11. C#將派生類分配給基類變量與泛型
- 12. 爲什麼postgres將不同類型分配給字符串?
- 13. 爲什麼我不能將循環分配給變量?
- 14. 爲什麼我不能將Scala對象分配給Java變量?
- 15. 爲什麼我不能將location.hash分配給一個變量?
- 16. 如何將基類型對象分配給父類型引用?
- 17. 爲什麼我不能重寫父類?
- 18. 爲什麼我們不能從父類
- 19. $ .grep返回類型爲void是不能分配給boolean類型
- 20. C# - 將變體類型的子類轉換爲父類
- 21. 爲什麼我可以爲變量分配不同類型的值?
- 22. 將子類的實例從父變量賦值給子變量
- 23. 父類的變化類型的變量子類
- 24. 斯威夫特泛型類不能分配給子類
- 25. 爲什麼我不能將類的名稱用作類型?
- 26. 爲什麼不能在子類中看到父類的方法?
- 27. 將父類初始化變量傳遞給子類的實例
- 28. 我們如何將輸入類型分配給一個變量
- 29. 爲什麼這種類型的子類變量調用函數?
- 30. 將變量分配給MVC視圖類?
這與記憶無關。 –
對象類型之間存在層次關係。每個「狗」都是「動物」,但並非每個「動物」都是「狗」。 –