gpt4 book ai didi

java - 为什么接口(interface)中的所有字段都是隐式静态和最终的?

转载 作者:IT老高 更新时间:2023-10-28 11:32:21 26 4
gpt4 key购买 nike

我只是想了解为什么接口(interface)中定义的所有字段都是隐含的 staticfinal。保持字段 static 的想法对我来说很有意义,因为您不能拥有接口(interface)的对象,但为什么它们是 final (隐式)?

任何人都知道为什么 Java 设计人员会在接口(interface)中制作 staticfinal 中的字段吗?

最佳答案

接口(interface)旨在指定交互契约,而不是实现细节。开发人员应该能够通过查看接口(interface)来使用实现,而不必查看实现它的类。

接口(interface)不允许您创建它的实例,因为您不能指定构造函数。所以它不能有实例状态,尽管接口(interface)字段可以定义常量,它们是隐式的静态和最终的。

您不能在接口(interface)中指定方法主体或初始化程序 block ,尽管从 Java 8 开始您可以使用主体指定默认方法。此功能旨在允许将新方法添加到现有接口(interface),而无需更新所有实现。但是如果不先创建一个实现接口(interface)的实例,您仍然无法执行这样的方法。

旁白:请注意,您可以使用匿名内部类实现接口(interface):

interface Foo {
String bar();
}

class FooBar {
Foo anonymous = new Foo() {
public String bar() {
return "The Laundromat Café";
};
}

您必须提供接口(interface)的完整实现,才能编译匿名内部类。

new Foo() 正在使用其默认构造函数初始化匿名内部类。

关于java - 为什么接口(interface)中的所有字段都是隐式静态和最终的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1513520/

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