gpt4 book ai didi

java - 类中的私有(private)接口(interface)

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:42 24 4
gpt4 key购买 nike

Here我遇到了这个短语:

Implementing a private interface is a way to force the definition of the methods in that interface without adding any type information (that is, without allowing any upcasting).

我发现很难理解这一点。有人可以为我解释一下吗?

最佳答案

这是一个私有(private)接口(interface)的例子。

public class Main  {

private interface Animal {
void makeNoise();
}

public static final class Cow implements Animal {
@Override
public void makeNoise() {
System.out.println("Moo!");
}
}

public static final class Sheep implements Animal {
@Override
public void makeNoise() {
System.out.println("Bah!");
}
}

public static void main(String[] args) {
List<Animal> animals = Arrays.asList(new Cow(), new Sheep());
for (Animal animal : animals)
animal.makeNoise();
}
}

Main 类中,您可以引用 Animal 并对其调用 makeNoise()。因此,您可以拥有一个包含不同类型的 AnimalList,并使用 for each 循环对它们全部调用 makeNoise()

但是,在 Main 类之外这是不可能的。你可以有一个 Cow 或一个 Sheep 并在其中一个上调用 makeNoise(),但是接口(interface) Animal 和接口(interface)方法 makeNoise() 是不可见的。

关于java - 类中的私有(private)接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27579860/

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