3 回答
TA贡献1777条经验 获得超10个赞
接口中的变量默认是 静态最终(您可以将其称为静态常量)变量,因此您只能为其赋值一次,之后无法更改其值。
检查此站点的最终关键字 - https://www.javatpoint.com/final-keyword
TA贡献1775条经验 获得超8个赞
您实际上是在更改main函数中的局部变量。此变量与您在接口中声明的变量不同,后者确实public, static and final是默认设置。但是局部变量没有这样的限制。
此外,如果局部作用域中有一个同名的变量,那么该变量优先于外部作用域中的同名变量。
编辑:
正如我之前解释的,你x在主函数中声明为局部变量,它x与接口中的变量不同。如果在尝试更改接口x变量时出现编译错误,请在主函数中执行以下操作:
public static void main(String[] args) {
x=50;
System.out.println("X value is" +x);
}
现在您将看到一个编译错误,告诉您无法分配接口的 x 变量。
TA贡献1111条经验 获得超0个赞
由于接口不能直接实例化,因此接口变量默认是静态的和最终的。我们不允许更改它们。
接口不能包含任何实现。Java 接口只能包含方法签名和字段。
我认为你需要一个更好的设计。所以界面应该是这样的:
public interface ICalculator {
public int add1(int a, int b); // this is the method signature, not the implementation.
}
然后在AdvClass2你可以实现该add1方法:
@Override
public int add1(int a, int b) {
int result = a + b;
return result;
}
添加回答
举报