2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
一般工具類會(huì)提供static final的方法。static是類上的方法,可以直接在class級(jí)別調(diào)用,final阻止子類重寫(xiě)。
比如Collection framework里面的Collections類里面就提供了幾個(gè)static final的方法
emptyMap,emptyList,emptySet

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
剛開(kāi)始,對(duì)于D我感覺(jué)非常奇怪,本來(lái)static方法(類方法)就是不會(huì)被重寫(xiě)的,加上final是沒(méi)有意義的,但是編譯器卻沒(méi)有報(bào)錯(cuò);
后來(lái)我發(fā)現(xiàn)D選項(xiàng)的static方法加上final還有有一定的區(qū)別的:首先,正常情況下static方法是不能被重寫(xiě)的,static方法是編譯期就確認(rèn)的調(diào)用,即使子類里聲明并實(shí)現(xiàn)了相同簽名的static方法,這也不是重寫(xiě)。其次,如果加上final后,發(fā)現(xiàn)在子類中就不能聲明并實(shí)現(xiàn)相同簽名的static方法,編譯器會(huì)報(bào)錯(cuò)說(shuō)不能重寫(xiě)該方法;
按上面所說(shuō),這道題的D也可以算作正確而已;通常我們是不會(huì)用final來(lái)修飾static方法的;
添加回答
舉報(bào)