【问题标题】:Interface in plain english简单的英文界面
【发布时间】:2010-09-30 09:47:46
【问题描述】:

请用简单的英语解释为什么我们需要以及为什么我们在面向对象开发中使用接口。

我很困惑。

[+] 我正在研究 Java。如果有,请提供 Java 中的示例代码。

谢谢大家。

【问题讨论】:

标签: java interface


【解决方案1】:

您检查了吗,带有 Java 接口 的部分您有解释和一些 Java 示例

http://www.javabeginner.com/learn-java/java-abstract-class-and-interface

示例 1:下面是 Shape 接口的示例

interface Shape {

    public double area();
    public double volume();
}

下面是一个实现Shape接口的Point类。

public class Point implements Shape {

    static int x, y;
    public Point() {
        x = 0;
        y = 0;
    }
    public double area() {
        return 0;
    }
    public double volume() {
        return 0;
    }
    public static void print() {
        System.out.println("point: " + x + "," + y);
    }
    public static void main(String args[]) {
        Point p = new Point();
        p.print();
    }
}

【讨论】:

  • 同意。接口很有用,因为它们使多态成为可能。 IE。在某个您不知道其精确类型的对象上调用函数,但您知道它实现了某个接口。
【解决方案2】:

这是来自 JavaRanch 的 Java Beginner FAQ 部分的 entry。这可能会有所帮助。 此外,请转到JavaRanch。特别是对于 Java 初学者来说,没有其他更好的替代品了。

【讨论】:

    【解决方案3】:

    接口用于描述 2 个对象的共同点,但实现方式不同。 mybook 给出的例子是鸭子。

    假设你有 2 只鸭子

    • 一个正常的活着的人

    • 还有一个木制的

    还有一个带有方法fly()的接口Ifly;

    两者都能飞。所以 Fly 方法进入界面。因为当你实现一个接口时,你必然会实现该接口中的功能。 (就像合同一样!)

    所以 Duck 实现了 IFly,并且在它的 fly 方法中它所做的一切都写入控制台说:I Can fly。

    当木鸭说“我不会飞”时。

    那么当你这样做时:

    (C#对不起不懂java)

    IFLy duck = new Duck() duck.fly(); -- This will write I Can fly. Ifly woodenduck = new WoodenDuck() woodenduck.fly()

    说我不会飞。

    简而言之,接口描述了对象必须实现的内容,因此您可以将其视为合同。

    希望这能让它更清楚一点,一开始也遇到了很多麻烦。

    (srry无法解释真的很好)

    【讨论】:

    • 很抱歉,您能否向我解释一下为什么我们首先需要一个契约耦合,而我们只能在其自己的类中实现各个方法。我已经阅读了很多文章和优秀的 Java 书籍。尽管如此,我还是不满意。我希望有人可以在不同的故事中解释为什么接口应该存在。您的回答可能也启发了其他人。
    • 好吧,让我尝试一下,接口在 OOP(面向对象编程)中非常重要,因为它允许良好的封装! (这也回答了你的问题)一个对象只看到接口,而不必关心该对象如何实现或处理函数。接口的另一个很好的例子是它们可以在团队中用于限制其他程序员实现某些功能。 (合同)因为如果他或她的那个类没有实现接口,编译器会抱怨。并且该项目将无法编译。希望这能澄清一些事情。
    【解决方案4】:

    interface(在 java 中)是一个 uninstatiable 抽象类(它没有构造函数),它提供 public 方法,所有继承它们的子类必须 实施。

    此外,继承的一个优点是便于使用multiple inheritance

    【讨论】:

      【解决方案5】:

      您只提供interface 要做的事情,如何完成将在实施中介绍。

      假设有一个接口Driver你会声明一个方法drive();

      现在假设一个汽车司机实现了这个方法,那么他可以在那里编写他的代码。
      如果飞行员实现驱动方法,那么他的代码..

      我希望它清楚。

      【讨论】:

      • 接口名称应该是Driver,而不是Drive
      【解决方案6】:

      你的意思是我们为什么需要接口或者为什么我们不只使用抽象类? 接口提供:

      1)抽象和依赖倒置。高级课程不关心他们使用的具体低级课程。你有更多的抽象,你得到更多的灵活性。例如,您可以完全重写适用于 DB 的级别,而您的应用程序的其他级别保持不变,因为它们使用接口而不是具体实现。

      2)在Java接口中提供多重继承

      【讨论】:

        【解决方案7】:

        老实说,您应该花时间阅读有关 Java 的好书。我推荐 Herbert Schildt 的 The Java Complete Reference。

        首先要了解以下术语及其在 OO 上下文中的意义:

        1. 键入
        2. 按类型发布的合同
        3. 实施
        4. 多态性

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-14
          • 1970-01-01
          • 1970-01-01
          • 2011-05-14
          • 1970-01-01
          • 2011-09-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多