当前位置: 首页 > 面试题库 >

函数返回接口意味着什么?

贺栋
2023-03-14
问题内容

我刚刚看到一个成员函数,如下所示:

public Cat nextCat(GameState state);

但是Cat是这样的接口:

public interface Cat {
        void makeCat(GameState state);
}

因此,我对如何解释这一点感到困惑。我知道什么东西返回一个对象或原语是什么意思。但是返回接口意味着什么?如何使用此函数的返回值?


问题答案:

考虑一下这种方式:如果Cat在常规类的哪里,当您想在其上调用某些方法时,您 究竟 在乎什么呢?

您会关心方法定义:它们的名称,它们的参数类型,它们的返回值。你 并不 需要关心实际的实现!

由于接口提供了所有这些功能,因此您可以像在常规类上一样在其上调用方法。

当然,为了使该方法实际返回某个对象,需要在 某个地方 有一些实现该接口的类。但是,实际上是什么类或 如何 实现这些方法与返回该对象的代码无关紧要。

换句话说,您可以编写如下代码:

Cat cat = nextCat(GameState.STUFF);
cat.makeCat(GameState.OTHER_STUFF);

该代码不知道实现该Cat接口的具体类型,但知道该对象可以执行Cat接口所需的所有操作。



 类似资料:
  • 我想创建一个

  • 问题内容: 我正在使用Facebook库,其中包含以下代码: 函数定义开头的&是什么意思,以及如何使用这样的库(在一个简单的示例中) 问题答案: 函数名称前的与号表示函数将返回对变量的引用,而不是值。 当您想使用函数查找引用应绑定到哪个变量时,按引用返回很有用。不要使用引用返回来提高性能。引擎将自动自动优化它。仅在有充分的技术理由时才返回引用。

  • 嗨,我正在读取BLE血糖仪的数据。当我试图阅读“00002a18-0000-1000-8000-00805f9b34fb”的特征时,它只是血糖测量UUID,特征。getProperties方法返回16,并且没有调用我的onCharacteristicRead方法本身。请帮助我如何读取BLOOD\u GLUCOSE\u测量特征。 我的读特征方法是 我的setCharacteristicNotific

  • 问题内容: 假设我们在A包中有A类,在B包中有B类。如果类A的对象引用了类B,则称这两个类之间具有耦合。 为了解决耦合问题,建议在包A中定义一个接口,该接口由包B中的类实现。然后,类A的对象可以引用包A中的接口。这通常是“依赖倒置”的一个例子。 这是“在接口级别将两个类解耦”的示例。如果是,当两个类耦合时,它如何消除类之间的耦合并保持相同的功能? 问题答案: 让我们创建一个虚拟的例子。 套餐类别:

  • 假设A包中有A类,B包中有B类。如果类A的对象引用了类B,那么这两个类之间就称为耦合。 为了解决耦合问题,建议在包A中定义一个接口,该接口由包B中的类实现。然后,类A的对象可以引用包A中的接口。这通常是《依赖倒置》中的一个例子。 这是不是“在接口层解耦两个类”的例子,如果是,它是如何去除类之间的耦合,并在两个类耦合时保留相同的功能的?

  • 对于下面的代码,我为一个对象< code>obj提供< code>isShiny,它被列为属性的一部分,本质上是一个键-值对,其中键是< code>isShiny,值是匿名函数。 但是,当我为函数 提供 时,幕后到底发生了什么?当我打印出一个函数时,没有提示在哪里。 这是来自的输出。