【发布时间】:2012-11-27 09:07:34
【问题描述】:
我有对象语言和对象范式方面的经验,但我对“实现”语句有一个疑问。 怀疑它是否包含代码(功能)?所以要非常具体“MyClass implements 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 吗?
【问题讨论】:
-
如果一个类“实现”了一个接口,它必须实现那个接口。
-
MyClass implements Runnable {} 不会编译:你必须在类中实现接口的所有方法。
-
docs.oracle.com/javase/tutorial/java/concepts/interface.html - 阅读这些教程会让您受益匪浅。关于“其他对象”,您的问题毫无意义。而接口是一个契约,这意味着你的类将提供这些方法
-
所以它保证该类将实现 ALL 接口方法(或者将是抽象的,并且仍然不能被实例化)。实现 InterfaceX 的 MyClass 和 SomeOtherClass 实现 InterfaceX 之间有什么关系?没有?
标签: java multithreading oop