gpt4 book ai didi

java - 在接口(interface)中声明的变量会发生什么?如果实现的类具有相同的变量?

转载 作者:行者123 更新时间:2023-11-29 07:50:03 24 4
gpt4 key购买 nike

代码如下。

public interface DesignPatternInterface 
{
int CUSTOMERAGE = 45;

}

public class ImplementInterface extends AbstaractDemo implements DesignPatternInterface
{
private static final int CUSTOMERAGE =20;
}

我的问题是接口(interface)变量是static final,会分配内存

最佳答案

考虑这段代码:

interface DesignPatternInterface {
int CUSTOMERAGE = 45;
}

public class ImplementInterface implements DesignPatternInterface {
static final int CUSTOMERAGE = 20;

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

它会打印

20
45

我相信这应该可以很好地解释您的疑问。

另请注意,堆上没有为原始静态最终变量分配内存;该值位于描述 的内存结构中,而不是该类的实例。根据特定 JVM 的细节,类描述结构要么在为 JVM 内部保留的特殊堆区域中,要么根本不在堆中。

关于java - 在接口(interface)中声明的变量会发生什么?如果实现的类具有相同的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21856476/

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