Java是否允许方法接口?

时间:2016-02-07 01:50:25

标签: java methods interface

是否存在可由方法而不是类实现的Java接口?

我的教授询问Java接口是否可以存在于方法中,学生们几乎一致地说不。教授告诉我们,我们需要检查界面。

我知道接口可以概括方法,但是尽管进行了大量搜索,但我找不到任何允许编写方法接口的功能的文档,也没有在我多年的Java使用经验中遇到过这样的功能。而且,它对我来说不具有语法或结构意义。然而,我觉得我应该稍微问一下,而不是忽略我教授的含义。

4 个答案:

答案 0 :(得分:1)

  

是否存在可由方法而不是类实现的Java接口?

您的问题陈述不明确。

您是否正在寻找一个类没有实现接口并且该类中的方法提供实现的示例?

一个例子:

executor.submit(new Runnable(){
                 public void run(){
                    System.out.println("Thread Name in Runnable:"+
                                        Thread.currentThread().getName());
                 }
            });

在此example中,

我的主要课程没有明确引用implements Runnable界面,而是it simply implemented run() method of Runnable interface.

<强> 编辑:

如果您的教授正在讨论java 8中界面的新功能,请查看此oracle documentation page。利用默认方法的这一新功能,接口在方法中具有主体,即它们为某些方法提供默认实现。

关于默认方法的一些重要说明:

扩展包含默认方法的界面

扩展包含默认方法的界面时,您可以执行以下操作:

  1. 根本不提及默认方法,它允许扩展接口继承默认方法。
  2. 重新声明默认方法,使其成为抽象。
  3. 重新定义默认方法,该方法会覆盖它。
  4. 特别要查看oracle文档页面中的“ Extending Interfaces That Contain Default Methods ”和article

答案 1 :(得分:0)

接口指定方法,在Java 8中可以提供默认实现。我怀疑这是你如何解释和解释你的导师的话。也许他指的是新的Java 8&#34;功能界面&#34;特征。你应该研究一下。

答案 2 :(得分:0)

这听起来像是你的教授所说的选择不好或你误解了他所说的一些事情。我可以想象他谈到了匿名类,您可以在其中编写以下接口的行实现:

@Html.HiddenFor( m => m.MyField )

或者他提到了接口的默认实现。在下一课中要求他澄清可能是有道理的。

答案 3 :(得分:0)

我做了应该是显而易见的事情:我向我的教授要求澄清。我似乎对她的话太过深入了解;当她说我们应该去审查接口时,她只是意味着那个。她从未说过我们错了;严格来说,似乎没有方法接口。但是我从所有这些答案中学到了很多东西 - 谢谢。