在类的声明为什么“扩展”先于“工具” [关闭](Why “extends” precedes “im

2019-06-24 08:14发布

为什么后类声明扩展,例如工具必须写入:

public class Register extends ActionSupport implements ModelDriven

为什么不

public class Register implements ModelDriven extends ActionSupport 

是一个编译时错误

Answer 1:

当Java编译器变成一个类成字节码,就必须先了解一下父类。 这是因为底层的实现类是指父类的字节码 - 持有相关的方法和字段。 然后,它的指针增加的子类函数的代码 - 其中一些是由“工具”关键字授权。

因为父类必须是编译的,这是比较容易,如果编译器知道前面那类是什么。 此外,您只能扩展一个类,但实现任意数量的接口。 编译时间爬上如果extends关键字之间可以任意数量的工具指令混合在一起。 编译器要尽可能快地不减少开发时间,所以这种选择是合乎逻辑的。 此外,它可以帮助你清晰地思考关于类出于同样的原因。



Answer 2:

可能是使编译器的工作更加轻松。 这只是一个约定。 没有任何的优势,能够重新安排这些事情。

这就像问为什么Java的功能,没有记在预购符号像public int (int a, int b)add{ return a+b; } public int (int a, int b)add{ return a+b; }



文章来源: Why “extends” precedes “implements” in class declaration [closed]