gpt4 book ai didi

java - Java 接口(interface)有什么意义?

转载 作者:行者123 更新时间:2023-12-01 23:34:59 27 4
gpt4 key购买 nike

在我从头开始构建的所有新应用程序中,我从未见过对界面的需求,我过去读过文本,但随后忽略并忘记了真正的需求。

也就是说,这是我过去见过的一个问题,我将用它来举例问这个特定的问题......

假设我有这个界面:

public interface IBox
{
public void setSize(int size);
public int getSize();
public int getArea();
//...and so on
}

我有一个实现它的类:

public class Rectangle implements IBox
{
private int size;
//Methods here
}

使用如下:

public static void main(String args[])
{
Rectangle myBox=new Rectangle();
// do stuff.
System.out.println( myBox.getSize() );
}

鉴于我仍然需要在 Rectangle 类中编写 setSize getSize getArea 方法。鉴于具有这些方法的 Rectangle,即使没有 IBox 接口(interface)也仍然可以工作。

除了公开、指示或描述 setSize getSize getArea 方法之外,拥有 Ibox 接口(interface)还有什么意义?

最佳答案

好吧,我们先不直接回答。假设我们有一个静态方法 scaleBox() ,它接受一个盒子并对其进行缩放。显然 HexagonalBox 不会扩展 Rectangle。我们需要一个 scaleBox(HexagonalBox h) 和一个 scaleBox(Rectangle r)。我们可以让这两个盒子都实现 IBox 并拥有一个方法,scaleBox(IBox box)。该方法保证有 setSize()

由于接口(interface)是一种类型,因此您可以让许多互不扩展的类实现该接口(interface),并安全地传递(因为它们保证遵守接受接口(interface)作为参数时所期望的约定)

在明年 JDK 8 的相关说明中,您需要专门设计的接口(interface)才能在新版本中使用 lambda 功能。

关于java - Java 接口(interface)有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18836083/

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