Java中方法的調用過程


1.編譯器查看對象的聲明對象和方法名。如x.f(args)語句,假設隱式參數x聲明為C類對象。這時編譯器一一列舉所有C類中名為f的方法和其超類中訪問屬性為public且名為f的方法。

2.編譯器查看調用方法時提供的參數類型。這個過程稱為重載解析。

3.如果是private、static、final方法或者構造器,那么編譯器就可以准確知道地知道調用哪個方法,這種調用方式稱為靜態綁定。如果不是這幾種情況,就采用動態綁定,執行下面過程。

4.當程序運行時,並且采用動態綁定調用方法時,虛擬機一定調用與x所引用對象是實際類型最適合的那個類的方法。假設x的實際類型是D,它是C類的子類。那么虛擬機會先在D類中尋找符合的方法,否則將在D類的超類中尋找,以此類推。

注意:如果每次調用方法都要進行搜索,時間開銷會變得很大,所以虛擬機預先為每個類創建了一張方法表,其中列出了所有方法的簽名(方法名和參數列表)和實際調用的方法。

5.調用方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM