-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. 爲什麼我不能將TextLength分配給Long值類型?
- 2. 爲什麼這種類型不能分配給參數類型?
- 3. 爲什麼我不能使用模板類的父類變量?
- 4. 爲什麼我不能將我的超類對象分配給擴展類?
- 5. 爲什麼超類分配給子類會給出錯誤?
- 6. SimpleXML - 將SimpleXML類型的變量分配給子元素?
- 7. C#將派生類分配給基類變量與泛型
- 8. 爲什麼我不能將location.hash分配給一個變量?
- 9. 爲什麼postgres將不同類型分配給字符串?
- 10. 爲什麼我不能重寫父類?
- 11. C# - 將變體類型的子類轉換爲父類
- 12. 父類的變化類型的變量子類
- 13. 斯威夫特泛型類不能分配給子類
- 14. 爲什麼我可以爲變量分配不同類型的值?
- 15. 爲什麼我不能將類的名稱用作類型?
- 16. 爲什麼不能在子類中看到父類的方法?
- 17. 我們如何將輸入類型分配給一個變量
- 18. 爲什麼這種類型的子類變量調用函數?
- 19. 將子類轉換爲父變量as3
- 20. 爲什麼分配的變量類型是數字?
- 21. 類型'{count:number; }「是不能分配給類型的參數」數
- 22. Promise:類型void的參數不能分配給類型T
- 23. 錯誤:類型「長*」不能分配給類型的實體「長」
- 24. 爲什麼不能將包含泛型類型的泛型類型分配給泛型類型的泛型類型
- 25. 爲什麼你不能在子類中用常量覆蓋父變量? (PHP)
- 26. 分配不同類型的變量的一種類型
- 27. 爲什麼我不能將泛型類型轉換爲值類型
- 28. 子類不能從父類
- 29. 不能將void分配給WP 8.1中的隱式類型局部變量
- 30. 爲什麼SBT給我一個類型不匹配的錯誤?
這與記憶無關。 –
對象類型之間存在層次關係。每個「狗」都是「動物」,但並非每個「動物」都是「狗」。 –