我尝试了解interface
的使用情况,并阅读this article,其中说:
接口定义了一个标准化的命令集 服从。
命令是类实现的一组方法。
接口定义说明方法的名称及其名称 返回类型和参数签名。没有可执行的主体 任何留给实现接口的每个类的方法。
我想问一下为什么我需要在interface
中声明方法的名称及其返回类型和参数签名,而我可以直接在class
中实现它们?
答案 0 :(得分:2)
最简单的方法我会说主要用途是多态,即能够在许多不同的对象上执行相同的操作。
来自here: -
接口是合同(或协议,或共同理解) 这些课程可以做什么。当一个类实现某个时 接口,它承诺为所有抽象提供实现 接口中声明的方法。接口定义了一组常见的 行为。类实现接口同意这些 行为并为行为提供自己的实现。这个 允许您在界面上编程,而不是实际编程 实现。接口的主要用途之一是提供一个 两个对象之间的通信合同。如果你认识一堂课 实现一个接口,然后你知道该类包含具体的 在该接口中声明的方法的实现,你是 保证能够安全地调用这些方法。换一种说法, 两个对象可以根据中定义的契约进行通信 接口,而不是他们的具体实现。
其次,Java不支持多重继承(而C ++ 一样)。多重继承允许您从更多派生子类 超过一个直接超类。如果两个直接,这就会产生问题 超类具有冲突的实现。 (跟随哪一个 子类?)。但是,多重继承确实有它的位置。 Java通过允许您“实现”多个来实现这一点 接口(但您只能从一个超类“扩展”)。 由于接口仅包含没有实际的抽象方法 实现时,多个接口之间不会产生冲突。 (接口可以保持常量,但不建议使用。如果是子类 实现两个具有冲突常量的接口,即编译器 将标记出编译错误。)