为什么我可以在实现全班时需要界面?

时间:2013-09-02 21:28:41

标签: java class oop

我尝试了解interface的使用情况,并阅读this article,其中说:

  

接口定义了一个标准化的命令集   服从。

     

命令是类实现的一组方法。

     

接口定义说明方法的名称及其名称   返回类型和参数签名。没有可执行的主体   任何留给实现接口的每个类的方法。

我想问一下为什么我需要在interface中声明方法的名称及其返回类型和参数签名,而我可以直接在class中实现它们?

1 个答案:

答案 0 :(得分:2)

最简单的方法我会说主要用途是多态,即能够在许多不同的对象上执行相同的操作。

来自here: -

  

接口是合同(或协议,或共同理解)   这些课程可以做什么。当一个类实现某个时   接口,它承诺为所有抽象提供实现   接口中声明的方法。接口定义了一组常见的   行为。类实现接口同意这些   行为并为行为提供自己的实现。这个   允许您在界面上编程,而不是实际编程   实现。接口的主要用途之一是提供一个   两个对象之间的通信合同。如果你认识一堂课   实现一个接口,然后你知道该类包含具体的   在该接口中声明的方法的实现,你是   保证能够安全地调用这些方法。换一种说法,   两个对象可以根据中定义的契约进行通信   接口,而不是他们的具体实现。

     

其次,Java不支持多重继承(而C ++   一样)。多重继承允许您从更多派生子类   超过一个直接超类。如果两个直接,这就会产生问题   超类具有冲突的实现。 (跟随哪一个   子类?)。但是,多重继承确实有它的位置。   Java通过允许您“实现”多个来实现这一点   接口(但您只能从一个超类“扩展”)。   由于接口仅包含没有实际的抽象方法   实现时,多个接口之间不会产生冲突。   (接口可以保持常量,但不建议使用。如果是子类   实现两个具有冲突常量的接口,即编译器   将标记出编译错误。)