向上轉型和動態綁定機制

什麼是向上轉型?

向上轉型又被叫做自動轉型、隱式轉型。向上轉型簡單來說就是父類引用指向子類實例,也被叫做子類的對象賦給父類的對象。
如:

People boy = new Boy();// 當前Boy類是People類的子類

注:我們說向上轉型是安全的。這是因爲任何的子類都繼承並且接受了父類的方法。在例子中我們也能發現並且理解,所有的男孩子都屬於男人的父類(人類),這是可行的,但是我們遇到向下轉型的時候就不行了。若說所有的人類都是男人即不成立。(向下轉型即爲強制類型轉換)

向上轉型的應用

1)當一個子類的對象向上轉型爲父類之後,就被當作了父類的對象。所能調用的方法就會減少,只能調用子類重寫了父類的方法以及父類派生的方法。而並不能調用子類獨有的方法。
2)父類中的靜態方法也是不能被子類重寫的。

擴展

多態的實現可以通過向上轉型和動態綁定機制來完成,向上轉型實現了將子類對象向上轉型爲父類類型,而動態綁定機制能夠識別處對象轉型前的類型,從而自動調用該類的方法。

動態綁定

綁定就是將一個方法調用到另外的一個方法所在的類連接到一起就是綁定,綁定也分爲動態綁定和靜態綁定。
靜態綁定:在程序運行之前就進行綁定(由編譯器和鏈接程序完成的),也被叫做前期綁定。
動態綁定:在程序運行期間由JVM根據對象的類型自動的判斷應該調用哪一個方法,也被叫做後期綁定。
動態綁定和應用面很廣泛,類似於抽獎程序中,我們都可以應用到動態綁定的效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章