關於向上轉型與向下轉型的一點個人見解

2021-07-10 13:58:57 字數 621 閱讀 7647

*總結:向上轉型獲得的是繼承和重寫的子類方法,向下轉型獲得的是子類擴充套件的方法。因為要強制性型別轉換,所以向下轉型之前最好用instanceof();判斷一下。*(關鍵點)**

在下第一次寫部落格,多有疏漏,望大家海涵!! 話不在多,而貴於精,這是本人的一點領悟,也希望大家有所收穫! 就這樣吧,再會!!!
2017/2/24

以上是之前寫的東西,今故地重臨,還是發現一些謬誤,也不重新改過了,出錯了也希望被看到錯在**,有的時候犯錯更能加深領悟。

上圖中,向上轉型沒錯,向上轉型之後,如animal an=new cat();

an物件只能呼叫從父類中繼承或是覆寫的方法,至於其自己擴充套件的方法,則處於undefined狀態。

而圖中向下轉型的標識則是錯的。如animal an=new cat();cat ming=(cat)an;

最後,使用向上轉型與向上轉型有啥好處呢?

我的一點點理解哈,可以簡化**,節省記憶體。唉,再寫下去,又是一篇部落格,我也不寫了。其實寫了,估計觀眾們也不愛看,所以把大致的原理、重點說一下就算完事了。作為乙個程式設計師,其實最重要的還是要自己敲**,先了解了個知識的大概,然後就要練手了,到**中去找自己的道。

JAVA筆記 多型的意義(向上轉型與向下轉型)

多型是物件導向的重要特性,簡單點說 乙個介面,多種實現 就是同一種事物表現出的多種形態。程式設計其實就是乙個將具體世界進行抽象化的過程,多型就是抽象化的一種體現,把一系列具體事物的共同點抽象出來,再通過這個抽象的事物,與不同的具體事物進行對話。對不同類的物件發出相同的訊息將會有不同的行為。比如,你的...

上的乙個向下轉型問題

public class testcasting class animal class dog extends animal class cat extends animal 這一行 system.out.println d1.name 輸出null 為什麼輸出的是null而不是 bigyellow...

記乙個關於向上轉型及多型的問題

恢復內容開始 public class program6 class a public string show a obj class b extends a public string show a obj class c extends b class d extends b 這個 源於別人,但...