在Java中,在接口方法中定义final
参数而在实现类中不遵守这一点是完全合法的,例如:
public interface Foo {
public void foo(int bar, final int baz);
}
public class FooImpl implements Foo {
@Override
public void foo(final int bar, int baz) {
...
}
}
在上面的例子中,bar
和baz
在类VS接口中有相反的final
定义。
以同样的方式,当一个类方法扩展另一个类方法时,无论是否abstract
,都不会强制执行final
限制。
虽然final
在类方法体中有一些实用价值,但为接口方法参数指定final
是否有任何意义?