前幾天刷微信公眾號的時候峰髓,看見一道有趣的面試題:
如果一個類里有兩個方法,test(String param)和test(Object param),那么調(diào)用test(null)的時候,會出現(xiàn)什么情況懒叛?
我寫了一個類:
面試題所述代碼
編譯的時候報錯:
編譯報錯
這樣一來需要給其中一個方法加上"static"關(guān)鍵字,因為并沒有明確指出對象耽梅,所以需要加上"static"關(guān)鍵字進(jìn)行調(diào)用薛窥。
我有點懵逼了支示,兩個加上關(guān)鍵字之后舵盈,輸出的竟然是String。我以為是編譯順序的問題屡贺,把test(String param)和test(Object param)的順序調(diào)換妥凳,結(jié)果還是一樣竟贯。test(Object param)一直在警告The method test(Object) from the type Test is never used locally。
隨后我查找了相關(guān)資料逝钥,發(fā)現(xiàn)一個答主的回答很明白屑那,附上鏈接:https://www.zhihu.com/question/52434671