什么是java中接口的抽象方法

Mar*_*hin 15 java ejb interface abstract

可能重复:
为什么将Java接口方法声明为抽象?

我在其中一个ejb接口中找到了以下代码.有谁知道抽象在界面中做了什么?如果你这样做,请解释为什么可能需要它或提供参考阅读它=)

@Local
public interface IDomasOrderProcessor {

    public abstract void executeOrderLines(List<OrderLine> lines);
    public abstract void setupJob(List<OrderLine> lines);
    public abstract void setupJob(OrderLine line);
}
Run Code Online (Sandbox Code Playgroud)

Dev*_*Dev 32

abstract在这种情况下是多余的.所有方法上定义interfaceARE publicabstract定义.

摘录Java语言规范第9.4节

接口主体中的每个方法声明都是隐式抽象的,因此它的主体始终用分号表示,而不是块.

接口主体中的每个方法声明都是隐式公开的.

  • 顺便说一下,在这种情况下,“公共”也是如此。也就是说,你可以同时删除两者,它会做同样的事情。有可能代码最初是一个被重构的抽象类。 (2认同)

Tom*_*icz 13

两者publicabstract修饰符都隐含在接口中,应该避免使用.


mat*_*ake 6

根据定义,接口中的方法是公共的和抽象的.我听说有些人说他们觉得明确地宣布他们就更清楚,但对我来说这似乎是额外的噪音.