it教程向上轉(zhuǎn)型和動態(tài)綁定機制_第1頁
it教程向上轉(zhuǎn)型和動態(tài)綁定機制_第2頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、向上和動態(tài)綁定機制1. 向上的概念:向上又叫自動、隱式。向上就是父類指向子類實例,也就是子類的對象可以賦值給父類的對象。如:Animal dog=new Dog( );/Dog 類是 Animal 類的子類注:向上是安全的,因為任何子類都繼承并接受了父類的方法。從例子中也可以理解,所有的狗狗都屬于狗的父類動物,這是可行的,但是向下則,若說所有的動物都是狗狗就不成立了。(所以向下要通過強制類型轉(zhuǎn)換,后續(xù)章節(jié)中會講解)2、向上的應用1)當一個子類對象向上父類類型以后,就被當成了父類的對象,所能調(diào)用的方減少,只能調(diào)用子類重寫了父類的方法以及父類派生的方法(如 set()、get()方法),而不能調(diào)用

2、子類獨有的方法。例如:知 識 梳 理對象實例化:此時,調(diào)用方法調(diào)用時可以調(diào)用子類重寫父類的方法 writing(),但調(diào)用子類獨有的方法 show()時就是無效的2)父類中的靜態(tài)方法是不允許被子類重寫的。如父類 Pen 中含有靜態(tài)方法 draw( )當子類 Pencil 中也定義同名方法時,此時 draw( )算 Pencil 類自己獨有的方法:測試類中調(diào)用時:返回結果為:也就是實際上調(diào)用的是父類的靜態(tài)方法 draw( )多態(tài)的實現(xiàn)可以通過向上和動態(tài)綁定機制來完成,向上實現(xiàn)了將子類對象向上為父類類型,而動態(tài)綁定機制能識別出對象前的類型,從而自動調(diào)用該類的方法,兩者相輔相成。動態(tài)綁定:綁定就是將

3、一個方法調(diào)用同一個方法所在的類連接到一起就是綁定。綁定分為靜態(tài)綁定和動態(tài)綁定兩種。靜態(tài)綁定:在程序運行之前進行綁定(由編譯器和程序完成的),也叫做前期綁定。動態(tài)綁定:在程序運行期間由 JVM 根據(jù)對象的類型自動的判斷應該調(diào)用哪個方法,也叫做后期綁定。靜態(tài)綁定的例子:一類 Human,它派生出來三個子類 Chi類、American 類和 British 類,三個子類中都重寫了父類中的方法 speak( ):void,在測試類中用靜態(tài)綁定的方式調(diào)用方法speak( )。這種調(diào)用方式是在代碼里指定的,編譯時編譯器就知道 c 調(diào)用的是 Chi的 speak( ),a調(diào)用的是 American 的 speak( )。知 識 擴 展動態(tài)綁定的例子:如果在測試類中做以下改動:此時,Human 類中隨機生成 Chi類、American 類和 British 類的對象,編譯器不能根據(jù)代碼直接確定調(diào)用哪個類中的 speak( )方法,直到運行時才能根據(jù)產(chǎn)生的隨機數(shù) n 的值來確定 h

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論