В 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
имеют противоположные определения final
в классе VS интерфейса.
Таким же образом, ограничения final
не применяются, когда один метод класса расширяет другой, либо abstract
, либо нет.
Хотя final
имеет практическое значение внутри тела метода класса, существует ли какая-либо точка, указывающая final
для параметров интерфейса интерфейса?