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:是的,这是离奇的。 –