2010-09-30 121 views
1

请用纯英文解释我们为什么需要以及为什么在面向对象开发中使用Interface。纯英文界面

我很困惑。

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

谢谢大家。

+3

你四处搜寻? Stackoverflow有很多这样的问题的答案 – Bozho 2010-09-30 09:55:53

+0

粗略重复http://stackoverflow.com/questions/3826254/why-should-you-ever-have-to-care-whether-a-type-is-an-interface -or-a-class/3826450 – 2010-09-30 12:45:41

+0

“为什么我们需要以及为什么使用Interface”看起来非常像“为什么类现在被定义为界面?”。 – sleske 2010-09-30 13:19:03

回答

0

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

1)抽象和依赖倒置。高水平的班级不关心他们使用的具体的低级班。你有更多的弃权,你获得更多的灵活性。例如,您可以完全重写与数据库一起工作的级别,并且保持应用程序的其他级别不变,因为它们可以与接口一起使用,但不能与具体实现一起使用。

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

1

您正在提供interface所要做的事情,它将如何完成,这将在实施中进行介绍。

假设有一个接口驱动程序,你将声明一个方法drive();

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

我希望它清楚。

+1

接口名字应该是'Driver',而不是'Drive'。 – whiskeysierra 2010-09-30 10:19:52

+0

@威利耶,更新,驱动器是司机知道的方法。 – 2010-09-30 10:21:27

2

你检查,以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(); 
    } 
} 
+2

同意。接口是有用的,因为它们使*多态*成为可能。即在某个你不知道确切类型的对象上调用一个函数,但你知道它实现了一些接口。 – Sjoerd 2010-09-30 09:54:34

1

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

1

一个接口用来描述两个对象有共同之处但实现不同。 mybook给出的例子是鸭子。

假设u有2个鸭

  • 正常活一个

  • 和木质一个

并与方法的接口IFLY飞();

两者都能飞。所以Fly方法进入界面。因为当你实现一个接口时,你必须在这个接口中实现这些功能。 (这就像是一份合同!)

所以鸭子实现了IFly,并且在它的飞行方法中,它把所有写到控制台上的信息写成:我可以飞行。

虽然木鸭说“我不能飞”。

然后当u做到这一点:

(C#抱歉,不知道JAVA)

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

,说我不能飞。

简而言之,A接口描述了一个对象有什么实现,所以你可以把它看作是一个契约。

希望这样做比较清楚一些,一开始也有很多麻烦。

(srry不能说明真正的好)

+0

对不起,您能否向我解释为什么我们需要首先加入合同,而我们只能在自己的班级中实施个别方法。我读过很多文章和很好的java书籍。不过,我并不满意。我希望有人能够以不同的故事解释为什么界面应该存在。你的回答可能会启发别人。 – 2010-10-01 02:44:32

+0

好吧,让我这样试试吧,接口在OOP(面向对象编程)中非常重要,因为,允许好的封装! (这也回答了你的问题)一个对象只能看到接口,并且不必关心该对象如何实现或处理该函数。接口的另一个很好的例子是它们可以被团队用来限制其他程序员实现特定的功能。 (合同)因为如果他或她的那个班级没有实现接口,编译器会抱怨。并且该项目不会编译。希望这件事清理一下。 – Emerion 2010-10-01 07:06:42

1

interface(在Java中)是一个uninstatiable抽象类(它没有构造函数),提供公共方法是继承他们必须在所有子类执行。

此外,具有继承的一个优点是便于与multiple inheritance

0

老实说,你应该对Java的读好书投入时间。我推荐Herbert Schildt的Java Complete Reference。

开始通过了解OO上下文中的下列术语和它们的意义:一个类型

  • 实现出版

    1. 类型
    2. 合同
    3. 多态性