gpt4 book ai didi

java - 更好地理解接口(interface)

转载 作者:行者123 更新时间:2023-11-30 04:01:48 24 4
gpt4 key购买 nike

当我查看这里、Google 和这个视频类(class)教程中问题的许多界面答案时,我有一个问题。我在这里问是因为如果我的声誉不高,我无法发表评论,所以希望这不是多余的。我理解接口(interface)就像伪代码,但更多的是一种将伪代码实现到程序中的实际方法。我明白了

public Interface someInterface{ 
public void doSomething();
}

就像说我们的程序中需要该功能,所以让我们制作这个界面,所以当我们这样做时

public class imDoingSomething implements someInterface{ // looking at the implements someInterface
@Override // optional
public void doSomething(){

System.out.println("Doing Something");
}
}

它确保我在编写程序时不会忘记编写此函数,因为它对我的程序至关重要。这是正确的吗?

最佳答案

在您的示例中,您已经正确实现了接口(interface)。接口(interface)可以被视为类必须履行的契约。知道该类已满足接口(interface)指定的要求,就允许客户端代码将对象用作接口(interface)类型,并保证特定方法将以指定的签名存在。这可以使代码更加抽象并且可重用于各种类型。

因此,如果我们有一个界面Playable:

public interface Play{
public void play();
}

还有两个实现Playable的类:

public class Record implements Playable{
public void play(){
System.out.println("Playing Record");
}
}

public class MP3 implements Playable{
public void play(){
System.out.println("Playing MP3");
}
}

客户端可以以抽象方式使用它们,因为它知道所有实现 Playable 的类都有一个 play 方法:

public class Application{

List<Playable> audioFiles = new ArrayList<Playable>();

public static void main(String[] args){

audioFiles.add(new Record());
audioFiles.add(new MP3());

for(Playable p: audioFiles){
play(p);
}
}

public static void play(Playable playable){
playable.play();
}
}

附注

创建类或接口(interface)时遵循 Java 命名标准。在 Java 中,这些类型的名称中的每个单词都使用大写字母。因此,您的示例将具有 SomeInterface 接口(interface)和 ImDoingSomething 类。

关于java - 更好地理解接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21803190/

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