1
class T {}
interface Interface{
void method(final T t);
}
class FirstClass implements Interface{
public void method(T t){
//valid
}
public void method2(final T t){
}
}
class SecondClass extends FirstClass {
public void method2(T t){
//valid
}
}
與最終預選賽覆蓋在上面的代碼,爲什麼不考慮最終預選賽,而覆蓋的方法?方法簽名參數
我對方法簽名中的最終限定符的理解是,該方法不允許更改引用。但我不明白它有什麼用處呢?
比方說,我使用的是第三方罐子,我對此感到第三方罐子應該不會改變我的目標,同時它處理,代碼應該是這樣的擔憂,
3rdPartyClass.doProcess((final) myObject);
class 3rPartyClss {
public void doProcess(SomeClass myObject){}
}
但爲什麼它的像
3rdPartyClass.doProcess(myObject);
class 3rPartyClss {
public void doProcess(final SomeClass myObject){}
}
如果第三方知道他不打算改變方法內的對象引用,那麼最後的簽名有什麼用?在重寫方法中,它也不會考慮最終的限定符。那麼它的真正用途是什麼?
我發現類似的問題,這樣的here,但想在這個
O_O那是快...在我花了時間來閱讀這一切後通過鏈接的問題 – awksp
想知道爲什麼它在界面中是合法的(同步不是)... – assylias
@assylias:是的,這是離奇的。 –