我最近遇到了以下方法。我尝试使用谷歌搜索,并通过如下定义方法做了一个示例来看到差异;两者似乎都是一样的。但是,我需要知道它是否真的相同?
public abstract void methodName();
abstract public void methodName();
注意:public
和abstract
已在上述两种方法中互换。
答案 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();