可能重复:
Why would one declare a Java interface method as abstract?
我在一个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);
}
答案 0 :(得分:28)
abstract
是多余的。根据定义,interface
上定义的所有方法都是public
和abstract
。
摘录Java Language Specification section 9.4
接口主体中的每个方法声明都是隐式的 抽象,所以它的身体总是用分号代表,而不是分号 块。
接口主体中的每个方法声明都是隐式的 公共
答案 1 :(得分:11)
public
和abstract
修饰符都隐含在接口中,应该避免使用。
答案 2 :(得分:6)
根据定义,接口中的方法是公共的和抽象的。我听说有些人说他们觉得明确地宣布他们就更清楚了,但对我来说这似乎是额外的噪音。
答案 3 :(得分:3)
根据this
记录interface
的所有方法public
和abstract
,因此无法在abstract
内明确定义interface
方法。