php小編西瓜經常收到關於Java中的多態性和靜態綁定的問題。這兩個概念在Java中經常被提及,但對於初學者來說可能會感到困惑。在本文中,我們將簡要介紹多態性與靜態綁定的概念,並解答一些常見問題,幫助讀者更好地理解和應用這些概念。
問題內容
我對java還是很陌生。所以我一邊玩java一邊閱讀多態性與靜態綁定。我來這裡是為了澄清我的思考過程是否正確。
class a { void foo(a a) { system.out.println("aaaaaa"); } } class b extends a { void foo(b a) { system.out.println("bbbbb"); } } class c extends b{ void foo (a a){ system.out.println("cccccbbbb"); } }
我創建了以下名為 c
的對象,並以 c 作為參數呼叫 foo。
C c = new C(); c.foo(c); // the output is BBBBB
從這篇關於java重載和動態綁定的問題中,我了解到如果在類別中找不到發送的參數,它將把參數(在本例中為c)向上轉換為在類別中可以找到的參數(在此情況a,因為void foo (a a)
)。但如果是這樣的話,它不應該印出“cccccbbbb”嗎?透過靜態綁定?
解決方法
類別 c
有 2 個重載方法,名稱為 foo
// defined in the class C void foo (A a){ System.out.println("CCCCCBBBB"); } // inherited from the class B void foo(B a) { System.out.println("BBBBB"); }
當我們使用類別c
的參數呼叫方法foo
時,會選擇最具體的一個- 類別b
在層次結構上比類別a
更接近,因此呼叫foo(b)
。
以上是對Java中的多態性和靜態綁定感到困惑的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版
好用的JavaScript開發工具