方法名称交换 - 公共抽象或抽象公共

时间:2012-12-04 17:07:24

标签: java

我最近遇到了以下方法。我尝试使用谷歌搜索,并通过如下定义方法做了一个示例来看到差异;两者似乎都是一样的。但是,我需要知道它是否真的相同?

public abstract void methodName();
abstract public void methodName();

注意:publicabstract已在上述两种方法中互换。

6 个答案:

答案 0 :(得分:18)

就功能而言,没有任何区别,但无论您选择哪一种,最好保持一致。

话虽如此,我几乎从未见过以前使用的abstract public。因此,从编码标准的角度来看,public abstract可能会更容易被更多人识别。

答案 1 :(得分:9)

它是一样的。别担心。两个类似的abstract方法声明。

答案 2 :(得分:4)

两者都是修饰符,您可以按任何顺序使用

答案 3 :(得分:2)

public abstract void methodName();
abstract public void methodName();

这两种方法是相同的类似例子是

public static void main(String args[]);
static public void main(String args[]);

因此上面两个是相同的。我们希望如何写作。

答案 4 :(得分:1)

James Gosling 等人撰写的“Java 语言规范,第三版”一书。阿尔。在第 8.4.3 节“方法修饰符”(第 214 页)中指出:“如果两个或多个方法修饰符出现在一个方法声明中,虽然不是必需的,但通常它们的出现顺序与上面在生产中显示的顺序一致用于 MethodModifier。”

生产是:

MethodModifier:以下之一: 注释 public protected private abstract static final synchronized native strictfp.

因此:是的,形式上,顺序无关紧要,但 Java 发明者自己更喜欢“公共抽象”。

答案 5 :(得分:0)

这两个代码相同,如果对代码进行反编译,则编译器会将其转换为相同的字节代码。但是,通常的做法(不是经验法则)是使用访问说明符而不是其他关键字开始代码。

public abstract void methodName();
abstract public void methodName();

编译器将两种方法都转换为以下代码

public abstract void methodName();