【问题标题】:Java Interface Example [duplicate]Java接口示例[重复]
【发布时间】:2018-01-16 00:04:30
【问题描述】:

我目前正在学习更多关于 Java 的知识,并且在书中遇到了一个示例,我认为这让我误解了接口的使用。正如我所看到的,有问题的界面是完全没有必要的,我想知道我是否读错了,或者我应该在别处寻找更好的理解(我已经尝试过但并不真正理解)。

界面:

public interface Series{
    int getNext();
    void reset();
    void setStart(int x);
}

实现类:

class ByTwos implements Series {
    int start;
    int val;

    By Twos() {
        start = 0;
        val = 0;
    }

    public int getNext(){
        val += 2;
        return val;
    }

    public void reset(){
        val = start;
    }

    public void setStart(int x){
        start = x;
        val = x;
    }
}

我不明白接口在这里有什么用,为什么类不能简单地删除 implements 语句,以及接口的真正用途。

编辑:与重复的问题不同,因为我在询问这个特定的示例,而这些问题的答案并不能帮助我真正理解这个概念。

【问题讨论】:

  • 这意味着如果有人编写了一个接受Series 作为参数的方法,您可以将ByTwos 的实例传递给它。
  • Series s = new ByTwos();一个可能的用途,但是如果您需要添加ByThrees() 怎么办?然后(使用Series)您只需更改为s = new ByThrees(); 即可……没有界面,您必须更改更多内容。如果是getSeries() 的方法呢?
  • @khelwood 啊,我不知道这是可能的。这让我更深入地了解了它为什么有用。
  • 我想我现在明白了。所以本质上;接口是一种用于创建类的“模板”,它允许使用模板创建的类更容易互换?

标签: java


【解决方案1】:

TL;DR

  • 它定义了“什么”,即实现了什么
  • 它定义了“如何”,即如何实现它。

接口的主要目的是将实现与 定义并强制执行该方法,而无需 失败。

假设您是一名经理,并且您决定程序员应该遵循模板,您可以使用 Interface。这就是它的作用,它提供了一个模板。 假设团队负责人想要强制实现某个功能但不想更改经理模板中的内容,他可以创建另一个界面。是的,接口可以进行多重继承。

接口是类可以做什么的契约(或协议,或共同理解)。当一个类实现某个接口时,它承诺为接口中声明的所有抽象方法提供实现。

它提供了抽象,你可以只暴露接口进行通信,我们可以从接口本身识别签名。

它还提供了一种实现多态性的方法。

参考:

【讨论】:

  • 非常感谢,您的解释比我找到的其他地方容易得多(也出于某种原因,没有人使用“模板”这个词,现在似乎是最简单的术语准确地描述它)。还要感谢主要问题 cmets 中的@JacksOnF1re。
猜你喜欢
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
相关资源
最近更新 更多