gpt4 book ai didi

java - 为什么不能在本地类中声明成员接口(interface)?

转载 作者:搜寻专家 更新时间:2023-11-01 03:21:52 25 4
gpt4 key购买 nike

你不能像下面这样在 block 中声明接口(interface)

public void greetInEnglish() {

interface HelloThere {
public void greet();
}

class EnglishHelloThere implements HelloThere {
public void greet() {
System.out.println("Hello " + name);
}
}

HelloThere myGreeting = new EnglishHelloThere();
myGreeting.greet();
}

This Oracle tutorial 我收到“您不能在本地类中声明成员接口(interface)”。因为“接口(interface)本质上是静态的。”

我渴望通过更合理的信息来理解这一点,界面为什么以及如何本质上是静态的?

为什么上面的代码没有意义?

提前致谢!

最佳答案

I am eagar to understand this with more rational information, why and how interface are inherently static?

因为接口(interface)是隐式静态的,你不能在内部类中有非最终静态。

Why are they implicitly static?

因为他们就是这样设计的。

and why above code does not make sense?

由于上述原因,

现在让我们简单点:

static 的含义 - “与特定实例无关”。因此,假设类 Foo 的静态字段不属于任何 Foo 实例,而是属于 Foo 类本身。

现在想想接口(interface)是什么——它是一个契约,是实现它的类 promise 提供的方法列表。对此的另一种思考方式是,接口(interface)是一组“与特定类无关”的方法 - 任何类都可以实现它,只要它提供这些方法。

所以,如果一个接口(interface)与任何特定的类无关,那么显然接口(interface)不可能与类的实例相关——对吗?

我也建议你学习Why static can't be local in Java?

关于java - 为什么不能在本地类中声明成员接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28342778/

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