首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java接口问题

Java接口问题
EN

Stack Overflow用户
提问于 2010-01-26 18:41:59
回答 6查看 219关注 0票数 0

我必须使用一个带有几个示例的API。在其中一个示例中,接口被直接用于调用该接口的方法之一。但是,由于interface不包含任何实现,我想知道:在没有定义实现该接口的类的情况下,如何在示例中使用这些方法来完成任何任务?

或者,接口也可以包含完整的方法定义吗?(这里看起来就是这样)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-26 18:49:03

不,接口只包含方法签名。接口中不能有实现。

在你的例子中(最有可能的)是类似于(伪代码):

代码语言:javascript
复制
InterfaceA {
    methodA();
}

class A implements InterfaceA {
   methodA() // implementation
}

InterfaceA getInterface() {
   // some code which returns an object of a class which implements InterfaceA
}

调用方法:

代码语言:javascript
复制
InterfaceA in = getInterface() // you might get an instance of class A or any other class which implements InterfaceA

in.methodA(); // implementation from whatever class the method returned
票数 4
EN

Stack Overflow用户

发布于 2010-01-26 18:46:01

你的意思是像这样的..。

代码语言:javascript
复制
InterfaceA a = getInterface();
a.method();

在本例中,a将是实现InterfaceA的类的实例-该类是什么并不重要,因为您所关心的只是接口方法。

票数 2
EN

Stack Overflow用户

发布于 2010-01-26 18:46:46

接口的

  • 具体实现必须存在。然而,它被它的接口引用,这就是为什么看起来interface.
  • interfaces上的调用方法不能有实现(“完整的方法定义”)

的原因

查看对象的创建位置。您可以拥有:

代码语言:javascript
复制
public void doSomething() {
    MyInterface interface = new MyInterfaceImplementation();
    doSomething(interface);
}

public void doSomethingElse(MyInterface interface) {
    interface.someMethod();
}

因此,通过查看doSomethingElse()方法,它可能看起来没有实现,但调用该方法的人提供了实现(本例中为MyInterfaceImplementation);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2138809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档