-1

可能重复:
Java 中的接口是什么?

我有对象语言和对象范式的经验,但我对“实现”声明有一个疑问。怀疑它是否包含代码(功能)?所以要非常具体“MyClass 实现 XInterface”是否包含来自实现该接口的其他类的代码?

类继承很简单,包括代码,在某种程度上,我知道“包括”可能不是正确的词,但当您使用“扩展”时,这就是谈论的地方。您包括来自父类的功能。

所以让我们以 Runnable 接口为例。它只有一次 run() 减速。这可能没有任何意义,只是 MyClass 将实现 run()。这让我感到困惑,比如在某个文件中实现一行减速会让我变得更好......我将通过使用“实现”获得的实际功能(和代码)在哪里?所以如果我使用:

MyClass implements Runnable {}

Runnable obj = new (Runnable) MyClass();

obj.run();//will call run() implementation from MyClass
obj.otherFunctions();/* so this calls functions from other classes that implement interface, but I don't know what functions from other classes are implementing, or even do I need them?*/

我还必须每个线程有一个类,比如MyClass extends Thread implements Runnable

4

1 回答 1

2

实现接口的类 Cl 意味着接口中定义的所有方法都必须在类 Cl 中实现。然后调用类可以调用这些方法,因为已知 Cl 实现(填充)接口。

例如查看 List 接口:ArrayList 和 LinkedList 都实现了 List,它们具有相同的公共方法(例如 add()、get()),但内部工作方式不同。

List list = new ArrayList();
list.add(3);

稍后如果有人希望 ArrayList 被另一个类交换,该类也实现了 List,只需要交换一行

List list = new LinkedList();
list.add(3);

如果对接口进行编程,则代码对特定类的依赖程度较低。当您稍后想要交换一个类以进行测试时,这具有优势,您可以通过测试用例控制该类。

于 2012-12-09T22:53:38.180 回答