gpt4 book ai didi

java - 在两个接口(interface)中声明并在一个类中实现的相同最终变量

转载 作者:搜寻专家 更新时间:2023-11-01 01:04:59 26 4
gpt4 key购买 nike

您好,我有两个接口(interface) AinterfaceBinterface 具有与声明为 10< 的“i”相同的静态最终变量/strong> 和 20,我在我的类 InterfaceCheck 中实现了这两个接口(interface),在其中我将相同的接口(interface)变量声明为 static 和 final 并初始化为 30 。当我尝试在类里面打印 i 的值时,我得到 30 作为输出。谁能解释一下为什么我能够将 i 重新初始化为其他值,即使它是最终变量。

代码

public interface Ainterface {

public final static int i=10;

}

public interface Binterface {

public static final int i=20;

}


public class InterfaceCheck implements Ainterface,Binterface {

public static final int i=30;

public static void main(String[] args) {
System.out.println(i);
}

}

>> 输出:30

最佳答案

类字段总是在引用的静态类型上解析。

public static void main(String[] args) {        
System.out.println(i);
}

它隐含地做

System.out.println(InterfaceCheck.i);

这就是你所看到的。

此外,静态字段不会被继承。

关于java - 在两个接口(interface)中声明并在一个类中实现的相同最终变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19187996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com