gpt4 book ai didi

java - 除了标准化期望之外,接口(interface)(Java 中)还有其他用途吗?

转载 作者:行者123 更新时间:2023-12-02 05:32:54 24 4
gpt4 key购买 nike

我是 java 和学习界面的新手。除了标准化期望之外,我不理解接口(interface)的使用。

如果有任何其他用途,请帮助我理解。

最佳答案

接口(interface)有一些很好的用途:

多态性

它们允许您以相同的方式处理几个不同但相似的对象。例如:

public interface Flyer {
public void fly();
}

public class Bird implements Flyer {
@Override
public void fly() {
System.out.println("I'm flying");
}
}

public class Airplane implements Flyer {
@Override
public void fly() {
System.out.println("I'm inanimate and flying");
}
}

// then you can have a method like so:
public void makeFly(Flyer flyer) {
flyer.fly();
}

// or make a list like so:
List<Flyer> fliers = Arrays.asList(new Airplane(), new Bird());

它们还允许对象适合几个不同的盒子。例如,Bird不仅是苍蝇,而且是Animal 。接口(interface)允许您处理 Bird作为其中之一:

public interface Animal {
public void move();
}

public class Bird implements Flyer, Animal {
@Override
public void fly() {
System.out.println("I'm flying");
}

@Override
public void move() {
fly();
}
}

// now I can do:
Bird bird = new Bird();
Flyer flyer = new Bird();
Animal animal = new Bird();

解耦设计

此外,它们还使您可以灵活地选择实现方式。 (我不确定你所说的“标准化期望”是什么意思,但这种用法可能与标准化相关。也就是说,这有效因为它创建了一个标准。)例如,假设我有一个返回 List<Flyer> 的方法。 。自 List是一个接口(interface),我可以选择使用ArrayList , LinkedList等作为我的实现:

public List<Flyer> makeFlyerList() {
return new ArrayList<Flyer>(Arrays.asList(new Airplane(), new Bird()));
}

// works just the same
public List<Flyer> makeFlyerList() {
return new LinkedList<Flyer>(Arrays.asList(new Airplane(), new Bird()));
}

关于java - 除了标准化期望之外,接口(interface)(Java 中)还有其他用途吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11169518/

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