在我的课堂上,我一直在努力学习这一点,但我找不到任何东西能清楚地解释这一点。所以我知道接口只有方法标题。那么实现在哪里呢?如果它没有身体它什么也做不了。那么我们在哪里定义方法,如何定义方法呢?
您将在实现接口的类中添加实现。
公共类MyClass实现MyInterface{...}
所以我知道接口只有方法标题。
你学的东西已经过时了。从Java 8开始,您可以在接口中添加已实现的(默认)方法(尽管我同意不应该在新接口中这样做)。
那么实现在哪里呢?
在实现接口的类中。这些是包含您的业务逻辑的类。接口本身只是作为一个“契约”来保证某些行为(方法)是可用的。
这段代码过滤调用流,然后打印所有大于10的元素。谓词中的测试方法为我们做到了这一点。 但是filter()方法的实际实现在哪里呢?该方法返回的“流”大于10?我不明白。 这个问题在某种程度上也适用于forEach()方法。它如何在流中迭代?因为filter()和forEach()方法在接口流中是抽象的,没有实现。
在Spring中构建一个项目时,我遵循了一个教程,@Repository接口扩展了另一个接口JpaRepository,它为子接口添加了功能: 在@service类中 我想找到“save”方法的实际代码。下载了并进行了反编译,但在那里找不到实现。
虽然我对Java不是很陌生,但以下问题让我非常困惑,以至于我无法克服。我在网上搜索了很多,也找到了一些答案,但并不完全令人满意。谁能帮我消除疑虑吗 我的困惑是: 问题1:迭代器是一个接口,我们不能实例化或创建接口的对象。那么,我们应该在这里称之为“iter”,它是什么? 问题1.1:迭代器的所有方法(例如next())都由“iter”调用。这些方法在哪里定义?如果这些方法是在向量类的特定内部类中定
方法存储在内存中的何处? Java中静态方法和静态变量存储在哪里?
我的问题是:由于Collection扩展了Iterable接口,所以它有了在Iterable中定义的抽象方法iterator()。因此,LinkedList是一个具体的类,它实现了扩展Collection接口的List接口,我想它应该有一个迭代器()方法的重写版本... 我看到了SUN company的ArrayList类源代码,里面有一个实现迭代器接口的内部类“Itr”,通过调用ArrayLis
在Java8中,我有如下内容: 例如,如果A解锁或提供了对一个资源(比如数据库)的访问,而B解锁了第二个资源(另一个数据库),我认为没有办法使代码解锁A,然后B通过使用函数接口强制执行这个契约,要求调用A和B。一层深的你可以做到,但N层深的看起来就不可能了。 我打算使用lambdas来避免进行昂贵的调用,但要对我的库的用户执行语义操作顺序。 这个问题与“在Java中显式调用默认方法”并不完全相同,